我正在尝试为我的应用程序配置 log4j。我希望它每天滚动,这意味着我希望它创建一个包含日志的新文本文件并存档旧的文本文件。由于某种原因,我的记录器删除旧日志并覆盖它们,而不归档旧日志。
当我将其更改为每分钟滚动时,它可以正常工作。它每分钟都会归档我的日志并写入新日志。
当我将其更改为每小时滚动时,会出现与每天滚动的情况相同的问题。它只是简单地删除旧日志而不存档它们。
有人能给我指出正确的方向吗?谢谢。
log4j.rootLogger=DEBUG, A1
log4j.logger.org.hibernate=ERROR
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=C\:Desktop\\MyLogs\\data.log
#log4j.appender.A1.DatePattern='.'yyyy-MM-dd rolls daily
#rolls every minute
#log4j.appender.A1.DatePattern='.'yyyy-MM-dd-HH-mm
#rolls every hour
log4j.appender.A1.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{MM/dd/yyyy HH:mm:ss}|%-5p|%c:%m%n
最佳答案
我正在本地计算机上运行 Weblogic 服务器,并在其上测试我的应用程序。 看来每次对 log4j 属性文件进行任何更改时,都需要重新启动服务器才能使更改生效。我正在重新发布该项目而无需重新启动服务器。
上面的记录器配置对于分钟和小时记录都运行良好。今晚我将测试每日日志记录,但我确信一切都会井然有序。
如果有人感兴趣,这里是我的记录器的 Maven 依赖项:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.1</version>
</dependency>
关于java - Log4J 未正确归档日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26738582/