log4j使用ONLY log4j.xml创建文件名中带有时间戳的日志文件

时间:2015-05-06 20:59:32

标签: java log4j

我正在尝试创建一个日志文件,其中包含一个附加到文件名的日期,例如merge

这是我当前的log4j.xml。

application.log.yyyymmdd

它不会创建<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!-- Appenders --> <appender name="console" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="application.log" /> <param name="DatePattern" value=".yyyy-MM-dd" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n"/> </layout> </appender> <!-- Root Logger --> <root> <priority value="debug" /> <appender-ref ref="console" /> </root> </log4j:configuration> ,而只会生成application.log.yyyymmdd

还有另一种方法只使用 log4j.xml来实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

日志文件每天推出,当天的日志文件没有日期。假设当前日期是2015-05-06,并且在午夜,一旦它通过23:59:59,log4j将application.log备份到application.log.2015-05-06并且application.log文件变为登录

新的一天,2015-05-07,儿子

您应该知道application.log是当天的日志文件,因此它没有数据后缀并不重要。

以下是我现在使用的内容,它每天都会滚动一个新文件,并将日志文件保留30天。

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>/data/log/logging.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>30</maxHistory>
</rollingPolicy>