2

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

我不太确定为什么会发生这种情况,并且想知道是否有人知道这可能是为什么,或者对丢失会话 ID 的原因有任何理论?

感谢您提供的任何帮助。

4

1 回答 1

2

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

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

于 2013-04-09T15:03:40.730 回答