log4j MDC可以用于非线程应用程序吗?

时间:2013-06-12 03:25:30

标签: java log4j mdc

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

这里的问题是处理不涉及线程。对于非线程场景,log4j的MDC方法是否可行。如果没有,我怎么能实现这个目标?

1 个答案:

答案 0 :(得分:2)

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

相关问题