java - Log4J 2配置: How to split log files by size and by day at the same time?

标签 java logging log4j log4j2

我需要每天创建一次新的日志文件,或者如果日志文件大小变为 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

注意:

  1. 文件追加器应为RollingFileAppender
  2. 触发策略应为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/

关于java - Log4J 2配置: How to split log files by size and by day at the same time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59141865/

相关文章:

java - log4j 配置文件和继承?

java - 使用 api XSSF 时出现 NoClassDefFoundError

java - 一次只打开一个JInternalFrame

logging - ASP.NET Core日志记录-筛选出系统项目

xcode - Xcode Scheme Post-Actions 的日志文件在哪里?

java - 如何更改 Kafka 客户端日志记录级别/首选项?

java - 验证插入查询是否在 hibernate 中完成

java - 将文件中的名称放入数组中会导致无限循环

asp.net - Orchard CMS 如何进行日志记录?

java - 是否支持 log4j.properties 文件包含?