- 附上兩個(gè)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>
- 自定義appender方式
log4j2自定義appener可以直接類似RollingRandomAccessFileAppender,去 extends AbstractOutputStreamAppender<RollingRandomAccessFileManager>
然后只需要在start()和append()中實(shí)現(xiàn)自己的邏輯。 -
rollover源碼
注意下面RollingRandomAccessFileAppender類中的append()中調(diào)用manager.checkRollover(event);去主動(dòng)check是否需要rollover
image.png
image.png
我們使用的是TimeBasedTriggeringPolicy
image.png


