2017-07-05 123 views
2

我使用RollingRandomAccessFile appende的log4j的日誌記錄和一切工作正常,Log4j2創建新的日誌文件,如果不存在

<RollingRandomAccessFile name="xxx.FLT" fileName="${sys:xxx.log.path}FLT.log" filePattern="${sys:xxx.log.path}FLT.log.%i" append="true" immediateFlush="true" bufferSize="262144"> 
     <PatternLayout pattern="%d{MM-dd-yyyy HH:mm:ss,SSS} [%t] %level{WARN=WARNING, DEBUG=FINE, ERROR=SEVERE} %logger{36} - %convInfo %msg%n"/> 
     <Policies> 
      <SizeBasedTriggeringPolicy size="100MB"/> 
     </Policies> 
     <DefaultRolloverStrategy fileIndex="max" min="1" max="5" compressionLevel="3"/> 
    </RollingRandomAccessFile> 

在所有的日誌文件被創建的應用程序啓動。如果在一段時間後沒有獲得更新,我有另一個從光盤中刪除日誌文件的過程。

如果此進程刪除了一個日誌文件,它將不會在新的日誌事件中再次創建。

我要創建新的日誌文件,如果沒有在給定的位置在新的日誌事件已發生

我知道什麼時候重新啓動應用程序丟失的文件將再次創建時存在的,但我想在發生日誌事件時創建日誌文件。

我更喜歡配置級別更改而不是代碼級別更改。

回答

0

您只需確保您的日誌文件的刪除僅由log4j處理。這樣你永遠不會鬆動當前的日誌文件。

+0

是的,我認爲這是更好的方法,但這個過程不能停在這裏... –