【问题标题】:log4j. Unique log-file name日志4j。唯一的日志文件名
【发布时间】:2012-12-22 19:26:34
【问题描述】:

如何使用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>

【问题讨论】:

    标签: java log4j


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      例如,如果文件选项设置为 /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 文件中添加类似 this 的内容:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-19
        • 2015-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多