3

如何使用log4j? 创建唯一命名的日志文件。当我使用 时Logback,我可以这样做:

 <!-- current time formatted as "yyyyMMdd'T'HHmmss".  This value will be available to all 
    subsequent configuration elements. -->
<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss" />

并在 logger appender 内部定义文件名模式:

<file>${bySecond}.log</file>
4

2 回答 2

0

DailyRollingFileAppender当前日期附加到滚动到下一个文件之后,因此您将获得一个唯一的名称,该名称以每个文件的日志日期结尾。引用 JavaDoc:

例如,如果 File 选项设置为 /foo/bar.log 并且 DatePattern 设置为 '.'yyyy-MM-dd,则在 2001 年 2 月 16 日午夜,日志文件 /foo/bar.log 将是复制到 /foo/bar.log.2001-02-16 并记录 2001-02-17 将继续在 /foo/bar.log 中,直到它在第二天滚动。

将类似这样的内容添加到您的属性 XML 文件中:

<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>
于 2012-12-28T17:01:06.943 回答
0

我相信 log4j 1.7 开箱即用不支持此功能。但是您可以通过更改参数来扩展RollingFileAppender's方法以支持基于时间的功能。setFilefileName

于 2012-12-22T19:37:56.650 回答