2010-02-12 51 views
5

有沒有辦法配置log4j.xml文件讓多個appender共享相同的佈局?我已經將佈局參數複製到了每個appender中,但是如果模式更改,這是一種痛苦(並且似乎很奇怪,我需要這樣做)在多個位置更新它。java log4j.xml共享佈局的多個appender

感謝, 傑夫

+0

你有幾個appender?如果你有這麼多以至於很難維持它們,那麼你很可能會以錯誤的方式去做事。 – skaffman 2010-02-12 14:33:59

+0

現在我有2.一個控制檯appender和文件appender。我只是希望日誌消息在兩者中看起來都一樣,而且我的佈局模式都相同。似乎我應該能夠鞏固... – 2010-02-12 14:38:11

回答

3

你有沒有考慮過使用log4j.properties代替的log4j.xml?屬性版本接受值的變量替換。

您可以在log4j.properties文件(someProp=value)內創建自己的屬性,然後使用${someProp}來獲取該值。

從我記得的(不知道,但:D)你也可以在log4j.xml文件中有這個,但變量必須定義爲系統變量(-DsomeProp=value),在你的log4j.xml中,你再次使用${someProp}。雖然這個版本有點混亂,因爲你沒有在你使用它們的地方聲明params,就像你在log4j.properties中做的那樣。

+0

我會給它一個log4j.properties一槍。我認爲你是對的,它確實支持這些屬性,但出於某種原因,我更喜歡xml格式。謝謝。 – 2010-02-16 22:03:01