2011-07-19 27 views
2

我試圖使用映射診斷上下文添加在一個頁面請求的所有相關記錄報表用戶的用戶名。不過,我嘗試了三種不同的方式使其無法成功工作:如何插入用戶名到MDC整個Web請求

  1. 登錄後將用戶名輸入到MDC,註銷後刪除。該方法最終混合哪個日誌語句來自哪個用戶。
  2. 使用ServletFilter中推每個頁面加載的用戶名到MDC和彈出它回退作爲請求結束。這隻能捕獲一些數據,並且只能在Spring安全層中捕獲。
  3. 在所有控制器方法之前使用AOP @Around攔截器不起作用。

有沒有人對如何做到這一點有什麼建議?

回答

3

MDC有什麼問題?你是什​​麼意思春季安全層?我在一個Web應用程序中使用了這種方法,它運行良好。由於MDC綁定了線程,因此來自此線程的所有日誌語句都將設置用戶名,即服務和存儲庫層。

當然,如果某些用戶從使用線程(例如小服務程序3.0異步處理,JMS聽衆,執行人)提供服務,則需要在池線程注入的用戶名MDC的其他方式。

另請參閱我的回答here

+0

你能細說「你需要在池線程注入的用戶名MDC的其他方式。」 –

相關問題