Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个场景,其中我从 FOR 循环内部为字段 JOBNAME 的不同值调用第三方 REST URL。我希望将每个 JOBNAME 的日志记录语句记录在一个单独的日志文件中,即发送到 REST URL 的请求、所有中间业务逻辑日志记录和收到的响应都需要成为每个 JOBNAME 的不同日志文件的一部分。
这里的问题是处理不涉及线程。MDC 方法是否也适用log4j于非线程场景。如果没有,我怎样才能做到这一点?
log4j
拥有一个线程,您仍然可以将变量放入 MDC 上下文中,让调用传播并记录它们所做的任何事情。只需确保在调用有趣的员工之前执行 MDC.put(..) 并在完成后将其删除,这样它就不会逗留。例如,您可以在 FOR 循环中执行 MDC.put(..) 并且每次迭代都将使用不同的上下文,即使它是同一个线程。不确定其他地方,但在 Java 中它工作正常。