我有以下问题。我们在托管在同一 GlassFish 服务器上的两个项目中使用 log4j。每个项目都有内部 log4j.properties 文件,该文件指向基于不同目录的文件(让我们将它们命名为 Project1 和 Project2 )。
现在,由于某些不清楚的原因,有时第一个项目的信息消息会写入 Project2 日志文件,反之亦然。我检查了两个项目的 log4j.properties 文件,它们中没有任何内容指向另一个项目的日志。
怀疑是 log4j 实际上不是线程安全的,因此如果两个用户同时在两个系统中工作,记录器的消息可能会混合。这种怀疑是否正确?
最佳答案
是的,log4j 是线程安全的:
Yes, log4j is thread-safe. Log4j components are designed to be used in heavily multithreaded systems.
Ref 。
您所描述的听起来更像是配置错误,而不是跨进程/线程问题。
关于thread-safety - log4j 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8652288/