log4j MDC的可见性是实例级别?全球水平?

时间:2013-09-27 09:47:32

标签: logging log4j log4jdbc

我在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运行多个实例时。一个实例的信息将与其他实例的日志信息冲突?

1 个答案:

答案 0 :(得分:1)

MDC是线程本地的,因此不同线程内的调用(无论是在同一实例上还是在bean的不同实例上)都不会发生冲突。