2010-05-29 32 views
0

我配置log4j的基本目的全光照轉換模式: -初學者的log4j的問題

log4j.appender.rollingFile.layout.ConversionPattern=%p %t %c - %m%n 

但現在我想記錄從錯誤之際,以及作爲用戶名的類名(會話對象提供)以及該事件發生的日期和時間。我該怎麼做呢?我需要在格式字符串中做什麼更改?

感謝提前:)

回答

1

看看在PatternLayout文檔爲你最想要的東西。

您所面對的頭痛是從會話中獲取用戶名(Log4j無法自動執行此操作)。我可能會調查NDCsMDCs,並從會話中填充這些信息(可能是在一個servlet過濾器中?)。他們是每線程,所以假設你的用戶有相同的範圍,那麼這可能會有所幫助。

+0

嗨,布賴恩,我應該直接在用戶消息(自定義消息),我們通過,而不是使用MDC或NDC直接指定用戶名? – TCM 2010-05-29 11:41:03

+0

如果你可以這樣做,是的。但是,您是否需要將它傳遞給需要日誌消息的每個方法,並在其中包含該信息? – 2010-05-29 12:08:37

1

要獲得類名稱,您可以使用%l,但是會帶來一些性能上的衝擊。 要獲取用戶名,您需要使用mapped or nested diagnostic context,然後分別在模式字符串中使用特定的%X或%x。

檢查PatternLayout javdocs。