0
我有一個客戶端和服務器類。有一個客戶端實例正在運行,並且在同一個JVM中同時運行八個服務器實例。單獨的日誌文件爲同一類的單獨實例
我現在希望(以編程方式或通過屬性文件)設置log4j,以便我有每個類實例一個日誌文件。對於上面的例子,我想有9個獨立的日誌文件。
我有一個客戶端和服務器類。有一個客戶端實例正在運行,並且在同一個JVM中同時運行八個服務器實例。單獨的日誌文件爲同一類的單獨實例
我現在希望(以編程方式或通過屬性文件)設置log4j,以便我有每個類實例一個日誌文件。對於上面的例子,我想有9個獨立的日誌文件。
如果您使用的是相同的記錄儀的所有實例(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);
}
你爲什麼在同一個虛擬機上運行呢? – 2012-07-24 08:33:00
你可能不會喜歡這一點,但似乎你正在使用日誌進行調試,這是一個反模式,更好的編寫自動化測試 – 2012-07-24 08:41:45
我正在嘗試查明問題的位置oc詛咒,在我真正去調試之前。有趣的是,我實際上正在調試單元測試... @ChristianSchlichtherle我在做什麼感覺不對。你能否指點我對這個反模式的一些資源? – Howie 2012-07-24 09:44:52