我希望爲每個應用程序使用單獨的日誌文件,同時只使用一個logback.xml
文件。因此我使用的是SiftingAppender。未將MDC值傳遞給請求
每個應用程序都有它自己的WebApplicationInitializer,它分配一個特定的MDC。
當我啓動我的Tomcat服務器時,所有的日誌文件都會按照它們應該分割的方式進行分割。
但是,當我向服務器發送請求時,日誌輸出被寫入未知的文件。顯然,MDC值不能被讀取。
據我所知,MDC值是從父線程複製到子線程。每個請求的線程在哪裏創建,以便我可以在那裏分配MDC值?
另請參見https://stackoverflow.com/questions/6073019/how-to-use-mdc-with-thread-pools –
給出的答案適用於您的程序控制創建線程(或創建線程池)。請注意,Web應用程序通常不是這種情況。 – Pyranja
我在傳入過濾器中設置MDC屬性,並在傳出過濾器中清除它,並且我的Servlet容器(Tomcat)上運行了一個**單** Web應用程序。 假設每個線程在任何給定的時間只處理一個請求,這仍然是安全的嗎? – Shakkalakka