我已将应用程序迁移到 log4j 2,并通过 log4j2.xml 配置它
但是,我使用的一些库依赖于 log4j 1。如果我使用以下命令运行应用程序:
-Dlog4j.configurationFile=path/to/log4j2.xml
log4j 1 抱怨找不到配置文件。我正在使用 log4j 2 log4j-1.2-api-2.0-rc1.jar 提供的 log4j 1.x 桥。是否可以使用单个 log4j2.xml 来配置两者?
我尝试过的另一种方法是同时配置 log4j 和 log4j2:
-Dlog4j.configurationFile=path/to/log4j2.xml -Dlog4j.configuration=path/to/log4j.xml
我担心的是我的日志配置文件和输出的碎片。我还担心 log4j.xml 和 log4j2.xml 之间可能存在的冲突。例如日志文件 error.log 配置为在 log4j 1 中使用 FileAppender,在 log4j 2 中使用 RollingFileAppender。
有什么建议吗?
[note]
这是我看到的错误:
log4j:WARN No appenders could be found for logger (org.apache.activemq.util.ThreadPoolUtils).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
我使用的 log4j 2 版本是 log4j 2.0 rc1。
[answer]
似乎 activemq-5.8.0.jar 与 log4j 1 捆绑在一起。解决方案只是在 activemq 之前加载 log4j 1.x 桥。