log4j停止记录到文件,

sre*_*ith 7 java log4j

我在我的java应用程序中使用log4j,但经过一段时间没有抛出任何异常它停止了日志记录

我的log4j配置如下.

log4j.rootLogger=INFO,FILE
log4j.appender.FILE=com.test.TestFIleAppender
log4j.appender.FILE.MaxFileSize=20MB
log4j.appender.FILE.MaxBackUpIndex=200
Run Code Online (Sandbox Code Playgroud)

我的文件追加器包含一些代码来执行zip操作并指定日志文件格式等等.

这段时间记录正常,但突然停止记录,也没有异常抛出

任何人都可以告诉我这是什么问题吗?

任何人都知道这样的log4j相关问题吗?

Mar*_*erg 1

很难回答为什么你的日志记录停止了。

首先,检查硬盘空间,是否已满。

编写一个测试用例,其中线程每秒轮询 INFO 类型的日志消息。您可以检查这是否是空间或内存问题。

请注意:当您的程序在某处等待并且没有线程或操作正在运行时,您将看不到任何日志消息。请通过调试检查代码行是否在应显示日志消息的循环中执行(或如您期望看到的消息)。

这是我的 log4j 属性文件的示例。可能是有帮助的:

log4j.rootLogger=INFO, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p (%t) [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=C:/log/client.log
log4j.appender.logfile.MaxFileSize=5MB
log4j.appender.logfile.MaxBackupIndex=0
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
Run Code Online (Sandbox Code Playgroud)