Java Log4j在文件开头记录一些二进制信息

Java Log4j在文件开头记录一些二进制信息,java,log4j,Java,Log4j,我们在生产环境中面临一个问题。 在开始记录之前,使用log4j生成的文件将在文件开头附加一些特殊字符。 这导致了一个二进制文件,这使得像Splunk这样的工具无法访问这些文件,因为它需要文本文件 请帮助我这里可能有什么问题。根据谷歌的说法,我最好的猜测是您正在使用GC日志(JVM垃圾收集器日志),我在这里读到:这里: 根据前面链接的页面,似乎没有真正的解决方案,除了可能使用正确的ASCII编码+正确的语言环境组合 在您的问题中,您说过在生产环境中存在此问题,因此我建议您在生产环境中禁用GC日志,

我们在生产环境中面临一个问题。 在开始记录之前,使用log4j生成的文件将在文件开头附加一些特殊字符。 这导致了一个二进制文件,这使得像Splunk这样的工具无法访问这些文件,因为它需要文本文件


请帮助我这里可能有什么问题。

根据谷歌的说法,我最好的猜测是您正在使用GC日志(JVM垃圾收集器日志),我在这里读到:这里:

根据前面链接的页面,似乎没有真正的解决方案,除了可能使用正确的ASCII编码+正确的语言环境组合


在您的问题中,您说过在生产环境中存在此问题,因此我建议您在生产环境中禁用GC日志,因为您不应该在生产环境中这样做(启用GC日志会影响性能/存储)。在JVM启动选项中,查找类似于
-XX:+PrintGC
-verbose:gc

的字符?它是字节顺序标记(BOM)吗?字符是“^@^@^@^@”您使用的是哪个log4j版本?你能在这里发布你的log4j配置文件和/或你使用的模式吗?我使用的是log4j版本1.2.13,还有一件事是日志旋转时出现的字符。我正在使用滚动文件追加器。我还尝试使用Append作为true和false,并将编码设置为UTF-8。这并不能解决问题。@JayeshKWadikar如果您认为下面的答案对您有帮助,请将其升级/标记为“已接受”(stackoverflow.com/help/someone answers),以便其他人知道它对您有效:)(否则,请随时发表评论)