【问题标题】:log4j Properties file on daily basis每天的 log4j 属性文件
【发布时间】:2026-01-21 02:15:01
【问题描述】:

我有一个 log4j 属性文件,我想每天生成日志文件并在今天之前删除该文件,我的意思是它应该只包含今天的日志文件。

我使用了以下属性文件:

log4j.rootLogger=ALL,Appender2
log4j.appender.Appender2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Appender2.File=log/AlertLogfile.log
log4j.appender.Appender2.append=true
log4j.appender.Appender2.layout=org.apache.log4j.PatternLayout

【问题讨论】:

  • 我收到以下错误:错误 StatusLogger 找不到 log4j2 配置文件。使用默认配置:仅将错误记录到控制台。
  • 使用 Java 中的 TransportClient 并使用 TransportClient 5.5.1 与 Elastic Search 建立连接时发生此错误。

标签: java log4j rollingfileappender


【解决方案1】:

来自DailyRollingFileAppender的文档

滚动计划由DatePattern 选项指定。此模式应遵循SimpleDateFormat 约定。特别是,您必须在一对单引号内转义文字文本。日期模式的格式化版本用作滚动文件名的后缀。

log4j.rootLogger=ALL,Appender2
log4j.appender.Appender2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Appender2.File=log/AlertLogfile.log
log4j.appender.Appender2.append=true
log4j.appender.Appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender2.DatePattern='.'yyyy-MM-dd

【讨论】: