我有一种情况,其中我从FOR循环内部为字段JOBNAME的不同值调用第三方REST URL。我希望将每个JOBNAME的日志记录语句记录在一个单独的日志文件中,即,发送到REST URL的请求,所有中间业务逻辑日志记录和收到的响应都需要成为每个JOBNAME的不同日志文件的一部分。

这里的问题是处理不涉及线程。对于log4j的MDC方法是否也适用于非线程方案。如果没有,我该如何实现?

最佳答案

只有一个线程,您仍然可以将变量放入MDC上下文中,并使调用传播并记录它们所做的任何事情。只需确保在调用有趣的人员之前执行MDC.put(..),并在完成操作后将其删除,以免拖延。例如,您可以在FOR循环中执行MDC.put(..),即使每次迭代都是同一线程,也将具有不同的上下文。不确定其他地方,但是在Java中效果很好。

09-26 05:59
查看更多