2013-03-18 51 views
2

我工作的Web應用程序爲用戶的數據完整性問題提供了更多日誌。我想獲得像一些詳細信息:用更多信息擴展log4j錯誤電子郵件

  • 服務器名
  • 客戶端IP
  • 瀏覽器信息

是否與log4j的一種方法,可以登錄上述參數?換句話說,我想用其他參數添加這些參數。那麼log4j爲此提供了一些方法?

我log4j.properties爲:

log4j.appender.Stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n 

log4j.appender.Stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n 

log4j.rootLogger=INFO,Stdout 

log4j.logger.org.apache.wicket=INFO 
log4j.logger.org.apache.wicket.protocol.http.HttpSessionStore=INFO 
log4j.logger.org.apache.wicket.version=INFO 
log4j.logger.org.apache.wicket.RequestCycle=INFO 

我有一個LogUtil.java類中,我記錄了availiable信息。

編輯: 更清楚我的問題是什麼:

在哪裏可以找到這些參數以及如何將它們在現有的記錄添加?

+0

是你的問題,你不知道在哪裏可以找到該信息,或者如何將它自動添加到現有的日誌語句? –

+0

Logger#info(...)'是否可以接受? – bsiamionau

+1

@ThorbjørnRavnAndersen:是的,究竟在哪裏可以找到該信息以及應該使用哪種方法。我會更新這個問題。 –

回答

2

查找到MDC 。

您應該在實際開始處理之前用您提到的信息設置MDC。然後你可以在日誌消息中包含這些信息。

1

檢查提供大部分所需信息的HttpServletRequest類api。很多信息將通過請求標題提供。

無論你在做什麼日誌記錄你的java代碼,你都可以使用上面的值創建一個日誌字符串。

另一種選擇是使用MDC,如果你設置了東西,那麼它將被自動記錄。