Java log4j已停止记录到该文件,
我在java应用程序中使用log4j,但经过一段时间没有抛出任何异常,它停止了日志记录 我的log4j配置如下Java log4j已停止记录到该文件,,java,log4j,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 My file appender包含一些代码,用于执行zip操作和指定日志文件格式以及所
log4j.rootLogger=INFO,FILE
log4j.appender.FILE=com.test.TestFIleAppender
log4j.appender.FILE.MaxFileSize=20MB
log4j.appender.FILE.MaxBackUpIndex=200
My file appender包含一些代码,用于执行zip操作和指定日志文件格式以及所有
这是一段时间的日志记录,但突然停止了日志记录,也没有引发异常
有谁能告诉我问题出在哪里
任何人都知道任何与log4j相关的问题吗?很难回答,为什么日志会停止 首先,检查硬盘空间是否已满 然后编写一个测试用例,其中线程每秒轮询一条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
您是否考虑过log4j仍在写入文件,但您的自定义appender已将该文件与其父目录断开链接的可能性?这发生在我身上。一天工作,第二天不工作。我回去后意识到我已经改变了POM的依赖关系,并在谷歌上搜索了一下 当我更正此问题时,我的日志记录返回。我会确保您同步以下工件:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
org.slf4j
在将沙丁鱼库添加到依赖项后,我遇到了这种情况。然后,从这里的一个答案中,我将slf4j-log4j12库添加到依赖项中,它再次开始工作。这可能是一种非常罕见的情况,但我曾经遇到一个类似的问题,它是由使用。在克隆启用了log4j日志记录的对象之后,日志记录停止工作。解决方案是通过以下方式从克隆中排除log4j类:
cloner.dontClone(org.apache.log4j.Logger.class,org.apache.log4j.LogManager.class),
您确定它是TestFIleAppender
大写的I吗?另外,您是否尝试在信息级别打印测试消息?是的,信息级别的跟踪即将完成。。。所以我是对的?如果不抛出异常,问题可能是其他问题。任何已知的log4j问题,如这实际上是磁盘空间和我的应用程序是正常的,基本上我的应用程序是服务器,它能够处理请求和所有。。。但是跟踪不打印我的log4j文件也是相似的。。。你知道log4j中有任何已知的问题,比如这是一个原因,为什么你要使用自己的FileAppender?我有一些逻辑,可以创建旧日志文件的zipfiles,并将时间戳附加到新创建的日志文件,等等