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

新手上路,请多包涵

我想将 log4j 和 log4net appender 的日志文件名设置为具有当前日期。我们正在进行每日更新,但当前日志文件没有日期。日志文件名格式为

logname.2008-10-10.log

任何人都知道我这样做的最佳方法吗?

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

原文由 Tim 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

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>

原文由 gedevan 发布,翻译遵循 CC BY-SA 2.5 许可协议

使用 log4j.properties 文件,并在我的 POM 中包含 apache-log4j-extras 1.1 和 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

原文由 shinds 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题