设置日志文件名以在 Log4j 中包含当前日期

2022-08-31 14:00:30

我想将log4j和log4net追加器的日志文件名设置为具有当前日期。我们正在执行每日翻转,但当前日志文件没有日期。日志文件名格式将为

logname.2008-10-10.log

有谁知道我这样做的最佳方法吗?

编辑:我忘了提到我们也想在log4net中这样做。此外,任何解决方案都需要在 JBoss 中可用。


答案 1

DailyRollingFileAppender是你真正搜索的。

<appender name="roll" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="application.log" />
    <param name="DatePattern" value=".yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
          value="%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n  %-5p %m%n"/>
    </layout>
  </appender>

答案 2

使用log4j.properties文件,并将apache-log4j-extras 1.1包含在我的POM中,log4j 1.2.16

log4j.appender.LOGFILE=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.LOGFILE.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.LOGFILE.RollingPolicy.FileNamePattern=/logs/application_%d{yyyy-MM-dd}.log

推荐