我使用log4j 1.2.16
的RollingFileAppender
,當日志文件達到一定大小時,它會滾動日誌文件。現在我想每天滾動日誌文件和,當他們達到一定的大小。因此每天會有一個或多個日誌文件。按大小和時間滾動日誌
例如,
myapp.log myapp-17.12.2013.log myapp-16.12.2012.log myapp-16.12.2012.1.log myapp-16.12.2012.2.log
是否有現成的,貨架附加器,這確實它已經?
我使用log4j 1.2.16
的RollingFileAppender
,當日志文件達到一定大小時,它會滾動日誌文件。現在我想每天滾動日誌文件和,當他們達到一定的大小。因此每天會有一個或多個日誌文件。按大小和時間滾動日誌
例如,
myapp.log myapp-17.12.2013.log myapp-16.12.2012.log myapp-16.12.2012.1.log myapp-16.12.2012.2.log
是否有現成的,貨架附加器,這確實它已經?
確實有兩個選項:
請記住,這兩個選項使用文件重命名。如果有另一個腳本自動移動這些文件,請仔細考慮這一點。當兩個進程處理相同的文件時,文件重命名是有風險的。
我的建議是直接寫入模式中的不可變日誌文件名:myapp- {dd.MM.yyyy}。{X} .log。這樣「滾動」就是關閉一個文件並打開一個新文件。沒有重命名。沒有後臺線程。
它是workrd。非常感謝。 –
快速回答是「否」。看看log4j的javadoc:https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/FileAppender.html
只有兩個開箱即用的文件appender:DailyRollingFileAppender和RollingFileAppender(第一個不推薦,因爲它有同步問題)。
爲了實現你想要的,你應該創建你自己的appender,擴展RollingFileAppender並修改它以在日期發生變化時滾動文件。修改將是方法:
protected void subAppend(LoggingEvent event)
這裏你可以看到它的來源:http://www.docjar.com/html/api/org/apache/log4j/RollingFileAppender.java.html(線274)。
你只需要複製和粘貼代碼,並更改如果調用rollOver以滿足您的需求。
下面配置XML將做的工作: JAR要求:log4j的,滾動的appender-20150607-2059
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="file"
class="uk.org.simonsite.log4j.appender.TimeAndSizeRollingAppender">
<param name="File" value="D:\\App.log" />
<param name="Threshold" value="DEBUG" />
<param name="DatePattern" value=".yyyy-MM-dd" />
<param name="MaxFileSize" value="1KB" />
<param name="MaxRollFileCount" value="100" />
<param name="ScavengeInterval" value="30000" />
<param name="BufferedIO" value="false" />
<param name="CompressionAlgorithm" value="GZ" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %-23d{ISO8601} [%t] %x: %c{1} - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="file" />
</root>
</log4j:configuration>
http://stackoverflow.com/questions/3823977/need-a-working-example -of-configurations-log4j-rollingfileappender-via-properties – Stefan