【问题标题】:Rolling logs by both size and time按大小和时间滚动日志
【发布时间】:2012-12-05 20:08:35
【问题描述】:
我使用RollingFileAppender 或log4j 1.2.16,当日志文件达到一定大小时,它会滚动日志文件。现在我想每天滚动日志文件和,当它们达到一定大小时。因此每天会有一个或多个日志文件。
例如,
myapp.log
myapp-17.12.2013.log
myapp-16.12.2012.log
myapp-16.12.2012.1.log
myapp-16.12.2012.2.log
是否有现成的附加程序,它已经完成了吗?
【问题讨论】:
标签:
java
log4j
appender
rollingfileappender
【解决方案3】:
下面的配置 xml 将完成这项工作:
需要 JAR:log4j-rolling-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>