Log4j嵌套诊断上下文NDC

时间:2013-03-21 20:34:55

标签: java web-applications log4j ndc

当用户向我的Web应用程序发送请求时,会在ND4堆栈中添加用户会话ID以在log4j日志文件中使用,但由于某种原因,当我调用另一个方法时,会话ID不会似乎是在该方法中的日志调用中。虽然该方法一旦完成剩余的过程,仍然会在日志文件中保留会话ID。

我不太确定为什么会发生这种情况,并且想知道是否有人知道为什么会出现这种情况或者有没有关于失去会话ID的原因的理论?

感谢您给予的任何帮助。

1 个答案:

答案 0 :(得分:1)

NDC基于每个线程进行管理 - 这意味着如果您将会话ID推送到一个线程的堆栈中,然后在另一个线程中调用一个方法,那么您的会话ID将不会出现。

如果没有代码的上下文,我很难回答......如果您发布代码我可能会提供一个具体的答案。