2014-07-26 52 views
0

我知道可以根據一個包登錄到多個文件。我的問題稍有不同。鑑於以下包裝:使用公共模塊將多個文件回溯登錄

- foo.bar.moduleA 
- foo.bar.moduleB 
- foo.bar.commonModule 

在這種情況下,moduleA和moduleB具有從commonModule調用的代碼。我遇到的問題是,我得到兩個日誌文件,其中只包含來自moduleA的日誌或僅從moduleB進行日誌記錄。我知道這是因爲我正在使用的包級別日誌記錄,但我不知道如何擴展它來記錄此包中以及稍後在此線程中調用的任何其他包的所有內容。希望這是有道理的。謝謝你的幫助。

回答

0

我認爲你可以用它做MDC,但你需要的儀器代碼,當你開始你的moduleA或moduleB線程,以便它放在MDC東西:

MDC.put("module", "moduleA"); // or B 

然後,您可以將%X{module}放入您的模式並使用grep/whatever來過濾,或者您可以使用SiftingAppenderMDCBasedDiscriminator。有一個例子in this page