2014-11-05 34 views
1

我想在每次運行java應用程序時創建不同的日誌文件。 我有以下配置。 我預計它會創建一個名爲rf-yyyyMMdd-HHmmss.log的日誌文件,其中yyyyMMdd-HHmmss是我啓動java應用程序的時間。但它不起作用。 任何幫助,將不勝感激!如何使log4j2每次重新啓動時創建不同的日誌文件jvm

<?xml version="1.0" encoding="UTF-8"?> 
<configuration status="DEBUG"> 
    <appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> 
     </Console> 
     <RollingFile name="RF" filename="/home/sxd/rfjq/rf.log" immediateFlush="false" append="false" filePattern="/home/sxd/r\ q/rf-%d{yyyyMMdd-HHmmss}.log"> 
      <PatternLayout pattern="[%p] %m%n" /> 
      <Policies> 
       <OnStartupTriggeringPolicy /> 
      </Policies> 
     </RollingFile> 
    </appenders> 
    <loggers> 
     <Logger name="model.ModelRF" level="trace"> 
      <appender-ref ref="RF" /> 
     </Logger> 
     <root level="trace"> 
      <appender-ref ref="Console" /> 
     </root> 
    </loggers> 
</configuration> 

回答

0

請注意,您的文件名是filename="/home/sxd/rfjq/rf.log,因此它將創建文件rf.log。如果您使用滾動策略,文件名模式將僅用於滾動策略。 重命名filename與日期模式,例如:

filename="/home/sxd/rfjq/rf-%d{yyyyMMdd-HHmmss}.log" 

可以如加「%i」設置爲你的文件名模式。這使「利添利策略」爲documentation,例如:

filePattern="/home/sxd/rfjq/rf-%d{yyyyMMdd-HHmmss}.%i" 

<OnStartupTriggeringPolicy />在應用程序啓動以來,將導致文件與模式rf-%d{yyyyMMdd-HHmmss}創建但是,如果這樣的文件已經存在,它會添加後綴.1結束的文件。如果有.1後綴的文件,它將創建另一個後綴.2。你可以在文檔中閱讀更多關於它的信息。

1

從RollingFile中刪除append="false"

相關問題