我在我的java应用程序中使用log4j,但一段时间后,没有抛出任何异常,它停止了日志记录
我的log4j配置如下。
log4j.rootLogger=INFO,FILE
log4j.appender.FILE=com.test.TestFIleAppender
log4j.appender.FILE.MaxFileSize=20MB
log4j.appender.FILE.MaxBackUpIndex=200
我的文件附加程序包含一些代码来执行zip操作并指定日志文件格式等。
这一段时间日志记录正常,但突然停止了日志记录,也没有抛出异常
有人能告诉我问题出在哪里吗?
有人知道这样的log4j相关问题吗?
5条答案
按热度按时间nnsrf1az1#
这发生在我身上。一天工作,第二天不工作。我回去后意识到我已经改变了POM依赖关系,并在谷歌上搜索了一下。
当我纠正这个问题时,我的日志返回。我会确保您同步以下工件:
http://www.slf4j.org/manual.html升
igetnqfo2#
很难回答为什么你的日志记录停止了。
首先,检查硬盘空间,是否已满。
然后编写一个测试用例,其中线程每秒轮询INFO类型的日志消息。然后你可以检查这是空间还是内存问题。
请注意:当您的程序正在某处等待,并且没有线程或操作正在运行时,您将不会看到任何登录消息。请通过调试来检查代码行是否在应该显示日志消息的循环中执行(或如您预期看到的消息)。
这是我的log4j属性文件的一个示例。可能是有帮助的:
blpfk2vs3#
您是否考虑过log4j仍在写入一个文件,但该文件已被自定义附加程序从其父目录中取消链接的可能性?
pnwntuvh4#
在我的依赖项中添加了sardine库之后,我遇到了这种情况。然后,从这里的一个答案中,我将slf4j-log4j12库添加到依赖项中,它再次开始工作。
wgxvkvu95#
这可能是一种非常罕见的情况,但我曾经遇到过一个类似的问题,它是由使用Cloner引起的。在克隆启用了log4j日志记录的对象后,日志记录就停止了。解决方案是使用以下方法从克隆中排除log4j类:
cloner.dontClone(org.apache.log4j.Logger.class, org.apache.log4j.LogManager.class,)