文件名在log4j中滚动文件

时间:2011-05-05 08:48:53

标签: java log4j

在当前情况下,日志文件将根据最大文件大小10MB进行滚动。滚动文件的文件名例如是“SystemOut_Debug.log.1”。

问题是这些滚动日志文件的文件名。我们想要的是文件滚动时的当前日期和时间戳。例如“SystemOut_Debug.20110505.104500.log”

我们怎么能意识到这一点?

非常感谢

2 个答案:

答案 0 :(得分:3)

请改用DailyRollingFileAppender,例如

<appender name="log" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="/srv/logs/myprogram.log" />
    <param name="Append" value="true" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %-5p [%t] %c: %m%n" />
    </layout>
</appender>

DatePattern可用于按小时轮换,例如使用

<param name="DatePattern" value="'.'hh" />

每小时有一个文件,每24小时覆盖一次。

答案 1 :(得分:0)

DailyRollingFileAppender是您正在搜索的内容。

<appender name="roll" 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>