我正在尝试使用 commons-logging.properties 文件为Apache Commons Logging设置log4j2。对于Log4j 1,我可以使用org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
映射到版本Log4j 1.2。我无法找到log4J2的实现。我使用的版本是2.8.2。
Log4J Commons Logging Bridge的Log4J2文档指定只需 添加网桥jar以及其他Log4j 2 jar和Commons Logging jar,所有使用Commons Logging API完成的日志记录都将被路由到Log4 。我通过添加
尝试了这个依赖关系,而不使用 commons-logging.properties ,但没有这样做。 如何使用或不使用commons-logging.properties实现此功能?
[UPDATE]
不确定这是否会对问题产生影响,但无论如何都要进行更新。我调试了commons-logging源代码,在LogFactoryImpl.java
中找到它从列表(L843)中查找日志记录实现(L162)。这里因为Log4JLogger不支持Log4J2,所以它设置为下一行,即JDK14Logger。由于Log4J2文档说添加网桥只是将日志从JCL映射到Log4J2,桥接api在这里扮演什么角色?我注意到它中有LogFactoryImpl.java
和Log4JLog.java
,但是公共日志记录是如何引用这些不同的包中的?