2013-07-12 42 views
0

我正在編寫一個代碼,可以在現場或歷史模擬模式下運行。我使用log4j2進行日誌記錄,並將日期和時間作爲每條日誌消息的一部分進行打印。當我在實時模式下運行代碼時,這些作品非常好;然而,當我在歷史模擬模式下運行代碼時,我想在日誌消息中獲取歷史日期和時間,而不是實際的掛鐘日期和時間。在log4j2中更改日期行爲的最佳方法是什麼?覆蓋log4j2的日期類別

感謝

回答

0

可能有更好的方式來做到這一點,但我設法改變使用log4j2的異步記錄器和一個自定義時鐘類log4j2使用的日期類:

首先編寫一個實現log4j2的一類clock class 1,比如說org.my.date。 接下來,運行代碼將以下代碼傳遞給jvm:

-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector   -Dlog4j.Clock=org.my.date