Log4J未正确归档日志

时间:2014-11-04 15:12:47

标签: java logging log4j

我正在尝试为我的应用程序配置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

1 个答案:

答案 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>