一:commons-logging存在的问题
commons-logging 是广泛使用门面日志库,使用动态查找机制在运行时发现真正的日志库,通过ClassLoader加载日志库,而OSGI中不同插件有不同的ClassLoader,每个线程执行时的ClassLoader都说是不同的,这种能力保证了各插件的相互独立,从而导致commons-logging在OSGI环境中无法正常使用,解决方案就是使用SLF4J。
二:slf4j
SLF4也是广泛使用的门面日志库,但是他是使用编译期静态绑定真正的日志库,通OSGI同时使用时不存在问题。
三:slf4j整合log4j2
这个主要是在版本上存在一些问题,目前我采用的成功整合的版本是
slf4j-api-1.7.21 + log4j-slf4j-impl-2.2 + log4j-core-2.2 + log4j-api-2.2 + log4j-web-2.2
log4j2.xml
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<appenders>···</appenders>
<loggers>···</loggers>
</configuration>