2011-11-25 153 views
9

DailyRollingFileAppender當前系統工作正常和日誌文件根據下面的邏輯一個小時軋製一次.GZ文件:log4j的:滾動登錄到使用TimeBasedRollingPolicy

log4j.appender.oozie=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.oozie.DatePattern='.'yyyy-MM-dd-HH 
log4j.appender.oozie.File=${oozie.log.dir}/oozie.log 
log4j.appender.oozie.Append=true 
log4j.appender.oozie.layout=org.apache.log4j.PatternLayout 
log4j.appender.oozie.layout.ConversionPattern=%d{ISO8601} %5p %c{1}:%L - %m%n 

我可以理解的那軋製使用TimeBasedRollingPolicy將RollingFileAppender(基於文件大小的滾動)直接記錄到壓縮文件(.gz或.zip)中。我正在使用DailyRollingFileAppender(基於時間的滾動),並希望通過它實現壓縮。我修改了我的屬性如下。但那不起作用。

log4j.appender.oozie=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.oozie.DatePattern='.'yyyy-MM-dd-HH 
log4j.appender.oozie.File=${oozie.log.dir}/oozie.log 
log4j.appender.oozie.Append=true 
log4j.appender.oozie.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy 
log4j.appender.oozie.RollingPolicy.FileNamePattern=foo.%d{yyyy-MM-dd-HH}.gz 
log4j.appender.oozie.layout=org.apache.log4j.PatternLayout 
log4j.appender.oozie.layout.ConversionPattern=%d{ISO8601} %5p %c{1}:%L - %m%n 

任何指針將不勝感激。這裏有一些相關的鏈接。

Configuring RollingFileAppender in log4j

http://logging.apache.org/log4j/companions/extras/apidocs/org/apache/log4j/rolling/TimeBasedRollingPolicy.html

+1

你發現了一個解決方案?我看到相同的 – javagirl

回答

2

原諒我的驚喜,但在你上面它說,在接受的答案給了確切鏈接:

注意TimeBasedRollingPolicy只能使用XML來配置,而不是log4j.properties

您是否嘗試將您的配置重寫爲XM L格式?

+2

感謝您的回覆。在我發佈的鏈接中,其中一個回覆顯示「此問題已在log4j v1.2.16中修復,現在它支持通過屬性文件設置rollingPolicy。issues.apache.org/ Bugzilla的/ show_bug.cgi?ID = 36384" 。我沒有嘗試用XML重寫,因爲這將是一個很大的改變(需要重寫已經存在的不同滾動間隔的多個記錄器),因此我們將嘗試使用屬性文件本身來實現。 – userkn87

2

請嘗試以下方法,它爲我工作:

log4j.rootLogger=CONSOLE,file 


log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE..layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender 
log4j.appender.file.Threshold=WARN 
log4j.appender.file.Encoding=UTF-8 

log4j.appender.file.File=/path to your logs/logs/log_file.log 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy 
log4j.appender.file.RollingPolicy.FileNamePattern=/path to your     logs/logs/log_file%d{yyyy-MM-dd-HH-mm-ss}.log 
log4j.appender.file.layout.ConversionPattern=%d{[email protected]:mm:ss} %-5p (%13F:%L) %3x - %m%n 
+1

對commons-logging-1.1.1(與log4j.log4j:1.2.12)無效,錯誤爲 log4j:WARN org.apache.log4j.RollingFileAppender中沒有此類屬性[rollingPolicy]。 log4j:WARN org.apache.log4j.RollingFileAppender中沒有這樣的屬性[datePattern]。 log4j:WARN org.apache.log4j.RollingFileAppender中沒有這樣的屬性[datePattern]。 log4j:WARN org.apache.log4j.RollingFileAppender中沒有這樣的屬性[rollingPolicy]。 – linuxatico