我有一個使用log4j日誌記錄框架的Java應用程序。在我的應用程序中,我有幾個模塊,每個模塊都創建自己的日誌文件。我通過命令行啓動我的應用程序,傳遞一個參數來告訴我的應用程序應該運行哪個模塊。 可以說我有3個模塊,所以每次啓動一個模塊時,所有3個日誌文件都正在創建,但只有一個充滿了信息(來自剛啓動的模塊)。 我有每個文件追加程序設置爲從Log4J FileAppender以編程方式訪問文件
...append = false
,這樣每次我開始我的應用程序有沒有舊的日誌數據新鮮的日誌文件。
現在我有一個批處理文件創建一個進程鏈,因此所有3個模塊在批處理文件中緊跟在另一個之後。 但問題是: 最後,來自前兩個模塊的日誌文件是空的,只有最後一個模塊將其日誌存儲在正確的日誌文件中(當然,這必須是這樣,因爲我將append選項設置爲fasle對於每個文件appender)
我正在尋找以下解決方案: 當我啓動一個模塊,我想檢查這個模塊的日誌文件是否爲空。如果是,那麼我只是將日誌數據追加到這個文件。如果文件中已有數據,我想刪除存儲當前記錄數據的內容。 所以最後當我打電話給所有3個模塊時(每次使用不同參數啓動應用程序3次)我想要填充所有3個日誌文件。 有什麼建議嗎?
好的,謝謝你這是一個好主意。但是如果我不知道有多少模塊正在啓動呢?所以,如果我有3個模塊,那麼每個日誌文件將被創建3次,所以我將不得不將MaxBackupIndex設置爲3.但是在稍後的時間我使用了可變數量的模塊。 – Metalhead89
每個模塊都使用它自己的Appender。所以你只能創建3個日誌文件一次。如果你重新啓動一個模塊,其他Appender不會翻轉。 – Simulant
但我使用XML配置文件的設置,因爲我不想以編程方式創建appenders – Metalhead89