Udy*_*Udy 5 java logging log4j rollingfileappender
是否有我可以使用的附加程序可以让我每天滚动,压缩和最大文件?
使用apache-log4j-extras此配置,我可以通过压缩获取每日滚动文件:
<appender name="debugFileRolling" class="org.apache.log4j.rolling.RollingFileAppender">
<!-- The active file to log to -->
<param name="file" value="debug.log" />
<param name="append" value="true" />
<param name="encoding" value="UTF-8" />
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="/%d{yyyy-MM-dd}-debug.log.gz" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %d [%t] %c: %m%n" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
但我不能指定MaxBackupIndex为 in org.apache.log4j.RollingFileAppender(注意两者之间的轻微命名空间差异)。
我想要两者而不必实现我自己的FileAppender, TriggeringPolicy, 或RollingPolicy。
log4j 1.2没有支持您所需的所有功能的附加程序。您必须使用自己的实现。
log4j2似乎支持您的要求。请查看log4j2 文档:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log"
filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)