2011-10-10 172 views
4

寫這個查詢之前,我查閱了類似的查詢在:在Log4J的請求範圍

我覺得我的查詢聽起來相似但不相同的。

你有沒有遇到過的日誌信息的分組對要求進入和他們的反應密切沖洗。即預期的操作順序如下:

  1. 配置記錄器請求範圍。
  2. 服務器收到請求。
  3. 由每個上下文bean編寫的日誌將被請求範圍記錄器緩衝。
  4. 響應準備,刷新和關閉。
  5. 記錄器得到通知響應已完成。
  6. 現在,logger將緩衝消息作爲批處理寫入關聯的appender,然後清除其緩衝區。

我期待與現有的log4j實現這種可能性。

請分享您的觀點。

回答

2

包括請求ID爲日誌(你可以使用Log4j的NDC)。按此ID和時間戳對日誌文件進行排序。

我認爲這是錯誤的,記錄的順序事件,從原來的順序不同。這可能導致一個非常大的混亂。

1

我通常要求不組日誌,因爲交談是不是一個請求更長的時間。所以我的解決方案是將用戶名添加到log4j's MDC

這樣,我可以爲每個用戶創建一個日誌文件或查看用戶所做的所有請求(加上響應以及在請求之外代表用戶執行的所有代碼,例如當後臺作業開始時)。

+0

我之前使用過MDC。嘗試使用其他方法將每個請求生成的整個日誌消息作爲批處理文件寫入日誌文件。通過MDC,我可以輕鬆區分每個日誌語句,但是深入鑽取日誌內容卻非常痛苦。 –

+0

什麼讓它痛苦? –

+0

這不是通過編碼,而是感覺。它是在搜索MDC關鍵字的每個記錄語句。 想要的東西,如: '--- boundaryString:start' '<與MDC關鍵字log4j的轉換模式>加上bean1' 登錄聲明'<與MDC關鍵字log4j的轉換模式>加上bean2' 日誌語句' ...' '--- boundaryString:end' –