2012-07-24 93 views
0

我有一個客戶端和服務器類。有一個客戶端實例正在運行,並且在同一個JVM中同時運行八個服務器實例。單獨的日誌文件爲同一類的單獨實例

我現在希望(以編程方式或通過屬性文件)設置log4j,以便我有每個類實例一個日誌文件。對於上面的例子,我想有9個獨立的日誌文件。

+0

你爲什麼在同一個虛擬機上運行呢? – 2012-07-24 08:33:00

+0

你可能不會喜歡這一點,但似乎你正在使用日誌進行調試,這是一個反模式,更好的編寫自動化測試 – 2012-07-24 08:41:45

+0

我正在嘗試查明問題的位置oc詛咒,在我真正去調試之前。有趣的是,我實際上正在調試單元測試... @ChristianSchlichtherle我在做什麼感覺不對。你能否指點我對這個反模式的一些資源? – Howie 2012-07-24 09:44:52

回答

1

如果您使用的是相同的記錄儀的所有實例(VG,private static final Logger log = Logger.getLogger(MyClass.class),所有日誌將遵循同樣的過程。

你應該定義記錄器作爲一個實例屬性和設置不同的行爲各一在log4j.properties,VG

private final Logger log; 

public MyClass(String instanceID) { 
    this.log = Logger.getLogger(MyClass.class.toString() + "_" + instanceID); 
}