我希望为每个应用程序使用单独的日志文件,同时只使用一个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