1

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

这里的问题是处理不涉及线程。MDC 方法是否也适用log4j于非线程场景。如果没有,我怎样才能做到这一点?

4

1 回答 1

2

拥有一个线程,您仍然可以将变量放入 MDC 上下文中,让调用传播并记录它们所做的任何事情。只需确保在调用有趣的员工之前执行 MDC.put(..) 并在完成后将其删除,这样它就不会逗留。例如,您可以在 FOR 循环中执行 MDC.put(..) 并且每次迭代都将使用不同的上下文,即使它是同一个线程。不确定其他地方,但在 Java 中它工作正常。

于 2013-06-14T13:59:34.760 回答