Log4J 未正确归档日志
Posted
技术标签:
【中文标题】Log4J 未正确归档日志【英文标题】:Log4J is not archiving logs properly 【发布时间】:2014-11-04 15:12:47 【问题描述】:我正在尝试为我的应用程序配置 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=%dMM/dd/yyyy HH:mm:ss|%-5p|%c:%m%n
【问题讨论】:
【参考方案1】:我正在测试我的应用程序的本地机器上运行 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>
【讨论】:
以上是关于Log4J 未正确归档日志的主要内容,如果未能解决你的问题,请参考以下文章