簡體   English   中英

log4j的。 唯一的日志文件名

[英]log4j. Unique log-file name

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

我相信在開箱即用的log4j 1.7中不支持此功能。 但是您可以通過更改fileName參數來擴展RollingFileAppendersetFile方法,以支持基於時間的功能。

DailyRollingFileAppender會將當前日期附加到下一個文件,因此您將獲得一個唯一的名稱,該名稱以每個文件的日志日期結束。 引用JavaDoc:

例如,如果File選項設置為/foo/bar.log並且DatePattern設置為'.'yyyy-MM-dd,則在2001-02-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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM