我使用log4j
和log4j.extras
創建兩個條件滾動的RollingFileAppender進行:如何設置RollingFileAppender的最大總磁盤大小?
- 工作文件大小超過
MaxFileSize
閾值。 - 系統的日期發生變化。
繼this guide,該附加器需要既TimeBasedRollingPolicy
和SizeBasedTriggeringpolicy
,例如:
<appender name="file_logger" class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="ActiveFileName" value="/fxh/logs/D3FIXFeeds.log" />
<param name="FileNamePattern" value="/fxh/logs/D3FIXFeeds.%d{HH-mm}.%i.log" />
</rollingPolicy>
<triggeringPolicy
class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
<param name="MaxFileSize" value="50000" /> <!-- in bytes -->
</triggeringPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p - %m%n" />
</layout>
</appender>
如何設置一個最高限額的日誌輸出的總磁盤空間?例如,假設我們的服務器管理員爲這個應用程序分配了40GB的日誌,那麼是否有指定這個給定的雙滾動策略?
到目前爲止,我發現的最接近的是maxBackupIndex
參數。我不能活動得到這個工作...例如,這些都不在只有五個文件截斷日誌:
<appender name="file_logger" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="MaxBackupIndex" value="5"/>
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="ActiveFileName" value="/fxh/logs/D3FIXFeeds.log" />
<param name="FileNamePattern" value="/fxh/logs/D3FIXFeeds.%d{HH-mm}.%i.log" />
...
也不
<appender name="file_logger" class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="ActiveFileName" value="/fxh/logs/D3FIXFeeds.log" />
<param name="FileNamePattern" value="/fxh/logs/D3FIXFeeds.%d{HH-mm}.%i.log" />
<param name="MaxBackupIndex" value="5"/>
...
我會說使用log4j v1你不能控制整個日誌文件的大小,只有在他們已經添加log4j2 v2.5刪除行動可以用來刪除日誌基於整體大小或最後一個日誌文件的時間戳。 – Babl