log4j2 Appender在触发时更改rollingfilename

时间:2017-09-18 19:07:22

标签: java log4j2

我想知道以下是否可行:

基于标准的log4j2.xml文件,我想在切换到新文件时将“已完成”字符串插入到上一个文件中。

类似于:“logs / app-09-18-2017_Completed.log”

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
  <Appenders>
    <RollingFile name="RollingFile" fileName="logs/app.log" 
       filePattern="logs/app-%d{MM-dd-yyyy}.log"
       <PatternLayout>
          <Pattern>%m%n</Pattern>
       </PatternLayout>
      <TimeBasedTriggeringPolicy />
    </RollingFile>
    <Console name="STDOUT" target="SYSTEM_OUT">
      <PatternLayout pattern="%m%n"/>
    </Console>
 </Appenders>
 <Loggers>
    <Root level="error">
       <AppenderRef ref="SYSTEM_OUT"/>
       <AppenderRef ref="RollingFile"/>
    </Root>
 </Loggers>
</Configuration>

1 个答案:

答案 0 :(得分:0)

filePattern转到

<RollingFile name="RollingFile" fileName="logs/app.log" 
       filePattern="logs/app_completed-%d{MM-dd-yyyy}.log">

会帮助你。因为它将模式视为一个字符串,其中DateFormat %d或整数%i被替换。