我四处寻找,但还没能找到关于如何配置它的明确答案。我读到本机 logrotate 不是一个好主意。那么有没有办法在 log4j 配置中做到这一点?
答案1
除非您想压缩旧文件,否则不要使用本机 logrotate。使用 log4j 工具,在此特定情况下:org.jboss.logging.appender.DailyRollingFileAppender 实现。
将使用参数 DatePattern 每天滚动日志或执行您设置的任何操作 http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/DailyRollingFileAppender.html
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/server.log"/>
<param name="Append" value="true"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
然后根据需要使用 cron 对日志进行 gzip 压缩。