簡體   English   中英

動態創建和銷毀日志記錄追加程序

[英]dynamically creating & destroying logging appenders

我有一個傳統的PSVM應用程序,我想將其日志記錄輸出重定向到每次執行的唯一文件。 所以,如果我在10:00調用它,那么讓它將它的輸出重定向到{thread-id} -10:00.log; 另一個執行線程可以在10:01開始執行,其輸出將轉到{thread-id} -10:01.log。 我明白這不優雅。

我的問題是:

  • 這可能嗎?
  • 有人知道如何接近嗎?
  • 是否有可能在不再需要時釋放/銷毀一個appender?

謝謝!

我將從FileAppender開始,並從中派生出來創建自己的。 只需修改您的版本以獲取當前線程ID,並在創建之前將合適的線程ID /時間戳附加到該文件。 你會維護(比方說)一個(緩沖的) FileWriters的地圖,該地圖以線程ID為關鍵字

編寫appender非常簡單 - 這是一個關於如何做到的Javaworld指南

在上面,您的程序是否可能在一分鍾內啟動兩次? 您是否要附加進程ID或類似內容以保持唯一性?

這是不可能的,至少在log4j中不容易做到。 但是,如果你看一下帶有logback(log4j的后繼者)的SiftingAppender發貨,它的目的是處理在運行時標准上創建appender以及在不再需要時刪除它們。

如果應用程序需要在每次應用程序啟動時只創建一個日志文件,則只需根據時間戳命名日志文件即可。 如果您需要進一步的幫助,請在logback用戶郵件列表上大喊大叫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM