【问题标题】:log4j to log4j2 custom RollingPolicylog4j 到 log4j2 自定义 RollingPolicy
【发布时间】:2015-06-10 16:24:37
【问题描述】:

我们有一个自定义滚动策略,在 log4j 中声明如下:

log4j.appender.testing.rollingPolicy=com.custom.appender.TimeBasedRollingPolicy log4j.appender.testing.rollingPolicy.timeToRolloverInSeconds=60 log4j.appender.testing.rollingPolicy.FileNamePattern=/tmp/cdr.log

如何在log4j2.xml 中声明?

【问题讨论】:

    标签: java apache logging log4j log4j2


    【解决方案1】:

    Log4j2 有一个 built-in time based rollover policy 可以做你想做的事。以下配置导致每分钟翻转一次:

    <Appenders>
      <RollingFile name="RollingFile" fileName="logs/app.log"
                   filePattern="logs/old/app-%d{yyyyMMdd-HHmm}-log.gz">
        <PatternLayout>
          <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
        </PatternLayout>
        <Policies>
          <TimeBasedTriggeringPolicy />
        </Policies>
      </RollingFile>
    

    如果要创建自定义翻转策略,则需要创建一个实现 TriggeringPolicy 的 log4j2 插件。一个好的起点是查看内置TimeBasedTriggeringPolicy 的源代码。 Log4j 自定义插件的一般信息是here

    【讨论】:

    • 谢谢。我认为内置解决方案适用于这种情况,但感谢您分享自定义方法。我会试试看。
    猜你喜欢
    • 1970-01-01
    • 2018-05-08
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多