我在j2ee应用程序中工作。我们正在使用会话bean(20个实例)。在那个MDC用于记录每个请求的消息ID。
import org.apache.log4j.Logger;
import org.apache.log4j.MDC;
public class ReqEng{
void process(){
Logger logger = Logger.getLogger(this.getClass().getPackage().getName());
MDC.put("MESSAGE_ID", messageID);
logger.info(" Hit ReqEng... !!! ");
MDC.remove("MESSAGE_ID"); }
}
这里我的问题是,当这个bean运行多个实例时。一个实例的信息将与其他实例的日志信息冲突?
答案 0 :(得分:1)
MDC是线程本地的,因此不同线程内的调用(无论是在同一实例上还是在bean的不同实例上)都不会发生冲突。