java - Log4J 2 配置:如何同时按大小和按天拆分日志文件?
问题描述
我需要每天创建一个新的日志文件,或者如果日志文件大小变为 250 MB。那么我怎样才能通过 log4j.properties 文件做到这一点呢?按天划分是有效的,但如果大小超过 250MB,则不会发生任何事情。我当前的属性文件是:
# Root logger option
log4j.rootLogger=INFO,console, file
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.file.encoding=UTF-8
log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.RollingPolicy.FileNamePattern=./logs/application_%d{dd-MM-yyyy}.log
log4j.appender.file.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.file.TriggeringPolicy.maxFileSize=250000
log4j.appender.rollingFile.MaxFileSize=10MB
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# configuration to print on console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
解决方案
根据以下 log4j 链接https://logging.apache.org/log4php/docs/appenders/rolling-file.html,您必须添加以下行。
log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.file.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.file.TriggeringPolicy.maxFileSize=250000
笔记:
- 文件附加器应该是
RollingFileAppender
- 触发策略应该是
SizeBasedTriggeringPolicy
编辑:
# Direct log messages to a log filelog4j.appender.file.encoding=UTF-8
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.file.File=${LOG_DIR}/application.log
log4j.appender.file.RollingPolicy.FileNamePattern=./logs/application_%d{dd-MM-yyyy}.log
log4j.appender.rfile.layout=org.apache.log4j.PatternLayout
log4j.appender.rfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file.MaxFileSize=250MB
log4j.appender.file.MaxBackupIndex=2
log4j.appender.file.append=true
您可以参考下面的完整示例。 https://howtodoinjava.com/log4j/log4j-rolling-file-appender/
推荐阅读
- android - 谷歌地图通用跨平台语法链接在使用 Android 移动设备从 Chrome 打开时不会初始化地址
- git - 如何(自动)从在线存储库更新在服务器上运行的软件?
- kotlin - 预期为 BEGIN_ARRAY,但在路径 $ 处为 BEGIN_OBJECT
- php - 如何让php前端控制器解析子目录中的页面
- r - 在与 R dplyr 中的多个条件之一匹配的任何变量处过滤
- javascript - 如何等待弹出窗口?
- python - 'NoneType' 和 'float' 错误 - 如何避免 NoneType
- c - 嵌入式 C 中的分区程序
- java - Intellij 新导入与先前导入的类进入同一行
- javascript - 如何使用 node.js 从 rgb 值的 Uint8Array 数组生成 png 或 jpg 图像?