java - 在 log4j 中使用 RollingFileAppender 时覆盖到相同的日志文件
问题描述
我在使用 log4j 时遇到问题。当日志超过文件大小的限制时,它会重写现有日志而不是创建新日志。达到文件大小后,我该怎么做才能创建新的日志文件。
log4j.appender.Default=org.apache.log4j.RollingFileAppender
log4j.appender.Default.Threshold=INFO
log4j.appender.Default.File=debug.log
log4j.appender.Default.FilePattern=debug.%i.log
log4j.appender.Default.layout=org.apache.log4j.PatternLayout
log4j.appender.Default.layout.ConversionPattern=[%d,%c{1}]%m%n
log4j.appender.Default.MaxFileSize=100KB
log4j.appender.Default.MaxBackupIndex=10
log4j.appender.Default.Append=true
解决方案
通过使用 SizeBasedTriggeringPolicy 并定义滚动策略,您可以压缩文件并在日志文件达到最大大小时轮换日志文件。下面是一个小片段供您参考,
log4j.appender.Default.layout=org.apache.log4j.PatternLayout log4j.appender.Default=org.apache.log4j.rolling.RollingFileAppender log4j.appender.Default.rollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy
log4j.appender .Default.triggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.Default.rollingPolicy.ActiveFileName =${log.dir}/${log.file}.log log4j.appender.Default.rollingPolicy.FileNamePattern=$ {log.dir}/${log.file}-.%i.log.gz log4j.appender.Default.triggeringPolicy.MaxFileSize=10000 log4j.appender.Default.rollingPolicy.maxIndex=10
推荐阅读
- java - 如何在 JavaFX 15-ea+3 中设置应用程序图标
- java - 如何让主线程等待执行器服务线程完成
- javascript - 货币文本框的正则表达式
- c# - Unity 2D 直接修改rotation.z 会导致奇怪的“平滑/平滑”旋转停止在180
- mongodb - 通过 docker-compose 使用 volumen 启动 MongoDB 时出错
- php - PHP 随机数生成器,大多数时候想要 0
- postgresql - 如何在或附近调试 postgres 语法错误
- sql - 如何根据登录 sql 求和?金融技术指标
- makefile - Makefile 编译建议
- ruby-on-rails - 使用 docker 容器运行 bundle install 时出现问题