2014-06-09 43 views
1

我有一個包含類的項目。Log4j項目中的每個類

我想每個類都做日誌記錄,而不是將它們一起包裝在一個日誌文件中。我正在使用Java。

一樣,比如我有

foo.bar.class1 foo.bar.class2

我怎樣才能達到每類日誌文件?

這樣我就可以擁有一個名爲「class1.log」和「class2.log」的日誌文件,其中包含它們各自的日誌數據。我應該在log4j.properties或類上做什麼?

任何幫助,將不勝感激,謝謝。

+1

如果你使用'log4j的-slf4j'橋再插上一個'logback'後端您可以使用[ 'SiftingAppender'](http://logback.qos.ch/manual/appenders.html)將不同的日誌「篩選」到不同的文件中。我不確定這樣的功能僅適用於log4j。 –

+0

爲每個類創建記錄器,並將每個記錄器與單獨的appender關聯起來,並將其與自己的日誌文件相關聯。 –

+0

隨着Log4j,我認爲你需要編寫一個自定義的appender來做到這一點。但是,真的不認爲這是一個好主意。跟蹤涉及多個類的方法調用序列中的問題可能會非常尷尬。 –

回答

0

我不確定你可以在log4j.xml或log4j.properties中做到這一點。所以,你實際上可以做,這是什麼(未經測試,而是應該以這種方式工作):

static { 
    Logger LOG = LoggerFactory.getLogger(MyClass.class); 
    try { 
     ((FileAppender)LOG.getAppender()).setFile("class-" + MyClass.name()); 
    } catch (...) {} 
}