我正在尝试为我的应用程序配置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
答案 0 :(得分: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>