Log4j仅在启动时滚动日志问题及配置实现
解决Log4j日志无法滚动的配置方案
最近我刚碰到日志没法自动滚动的问题,折腾了一圈后,通过调整log4j.properties的配置解决了,分享下我的配置内容给你参考:
# 禁用rootLogger,避免默认配置干扰自定义规则 log4j.rootLogger= # JBaseService相关业务日志配置 log4j.category.com.company.basesvc.common.server.log.SafeLog=aud0, stdout, fileout log4j.category.com.company.basesvc.javascript.core.JavascriptLog=aud0, stdout, fileout # SNMP4J第三方组件日志配置 log4j.category.org.snmp4j.log.Log=error, stdout, fileout # 可根据业务需求补充其他log4j.category.com....类别的配置
需要注意的是,上面配置里的fileout是支持滚动的Appender,如果你还没定义它,得加上对应的配置项,比如用RollingFileAppender的示例:
# 配置滚动文件输出Appender log4j.appender.fileout=org.apache.log4j.RollingFileAppender log4j.appender.fileout.File=./logs/business.log log4j.appender.fileout.MaxFileSize=5MB # 单个日志文件的最大容量 log4j.appender.fileout.MaxBackupIndex=20 # 保留的备份日志文件数量 log4j.appender.fileout.layout=org.apache.log4j.PatternLayout log4j.appender.fileout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p %c{1}:%L - %m%n
核心思路就是先禁用默认的rootLogger,避免它的配置干扰自定义日志规则,然后把需要监控的业务日志、第三方组件日志,都指定到支持滚动的Appender上,这样日志就会按照设定的规则自动分割滚动了。
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

