我有一个在其线程中运行的MySession对象(一个通用会话,而不是web)。我想使用NDC类来包含从我的MySession的字段中获取的一些数据:创建它的用户,开始时间等等。我想将字段“渲染”为消息。它是可能的还是仅支持消息? 在此先感谢log4j,嵌套的诊断上下文
public class MySession {
String userName;
Date startTime;
public void doSomething() {
NDC.push(this); //cannot do something like this?
NDC.push(this.userName
+ " " + startTime.toString()); //or should I do this?
}
}
好的,但如果是这样简单,是不是一个克隆,一个简单的“好名字”的线程标识符已经提供没有NDC? – AgostinoX 2011-05-25 12:24:26
@AgostinoX,不,它更通用,可以以线程ID不能使用的方式使用。例如。在Web应用程序中,它可以包含会话ID,其中会话通常跨越多个请求(并且因此由多个不同的线程处理)。 – 2011-05-25 12:53:09