2015-05-06 23 views
1

我的程序在它的主要功能之後,包含獨立運行的惡魔後臺線程,大部分時間都是空閒的。如果出現問題,線程會自動失敗(它們會顯示GUI警告,終止,但程序會繼續)。由於這些線程在與主應用程序不同的上下文中運行,因此如果它們中的每一個都可以擁有自己的日誌文件,那將是非常好的。所有線程都運行一個runnable,這是我的Robot類的一些實例。讓一個組中的每個類都擁有它自己的Log4j2日誌環境

Robot類定義了setLoggergetLogger方法並使用給定的記錄器來記錄數據。但只要整個項目的記錄器配置相同,我就不能將日誌分離爲惡魔線程。

有甚至有一個簡單的方法來做到這一點?記錄來自與主程序日誌混合的線程的消息是無用的。

回答

0

RoutingAppender可以做你想做的。這樣做的方式是,每個線程在Log4j2 ThreadContextMap中設置一個唯一值,並且RoutingAppender將使用此值路由到單獨的日誌文件。 Log4j2 FAQ頁面包含一個detailed example

+0

你好。謝謝我認爲這是道理。但我還是有點失落。我可以在''中使用通配符,例如''?如何在項目的Java部分中選擇路由文件? –

相關問題