美文网首页
log4j2自定义appender及rollover原理简析

log4j2自定义appender及rollover原理简析

作者: sunnyzhu92 | 来源:发表于2018-07-24 19:50 被阅读0次
  1. 附上两个appender配置:RollingRandomAccessFileAppender和自定义的LogStoreAppender
<appenders>
    <RollingRandomAccessFile name="UPDATE_FILE" immediateFlush="true"
                             fileName="${LOG_HOME}/update.log"
                             filePattern="${LOG_HOME}/update.log.%d{yyyy-MM-dd}">
      <PatternLayout>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %class{36} %L %M - %msg%xEx%n</pattern>
      </PatternLayout>
      <Policies>
        <TimeBasedTriggeringPolicy/>
      </Policies>
    </RollingRandomAccessFile>

    <LogStoreAppender name="ARTS_FILE" immediateFlush="true"
                             fileName="${LOG_HOME}/arts.log"
                             filePattern="${LOG_HOME}/arts.log.%d{yyyy-MM-dd}">
      <PatternLayout>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %class{36} %L %M - %msg%xEx%n</pattern>
      </PatternLayout>
      <Policies>
        <TimeBasedTriggeringPolicy/>
      </Policies>
    </LogStoreAppender>
  </appenders>
  1. 自定义appender方式
    log4j2自定义appener可以直接类似RollingRandomAccessFileAppender,去 extends AbstractOutputStreamAppender<RollingRandomAccessFileManager>
    然后只需要在start()和append()中实现自己的逻辑。
  2. rollover源码
    注意下面RollingRandomAccessFileAppender类中的append()中调用manager.checkRollover(event);去主动check是否需要rollover


    image.png
    image.png

    我们使用的是TimeBasedTriggeringPolicy


    image.png

相关文章

网友评论

      本文标题:log4j2自定义appender及rollover原理简析

      本文链接:https://www.haomeiwen.com/subject/bybymftx.html