Java开发中经常遇到日志冲突或者异常, 彻底的来此追根究底.
日志历史
- log4j
- JCL + log4j
- SLF4J
slf4j-XXX-version.jar[XXX指代log4j12, jdk14, jcl, nop 等] - slf4j-api
v1
log4j早期直接实现日志打印
v2JCL + log4j动态绑定, 面向JCL 接口实现的log4j
v3slf4j-api提供SLF4J接口面向对象编程slf4j-XXX-version.jar对接口和指定XXX种类日志的具体实现
slf4j 举例jar
- log4j-over-slf4j.jar 把
log4j转为slf4j - slf4j-log4j12.jar 以slf4j标准实现的log4j12
XXX-over-slf4j.jar把日志重定向到slf4jeg.jcl-over-slf4j.jar
总结
即.
Component
|
| log to Apache Commons Logging
V
jcl-over-slf4j.jar — (redirect) —> SLF4j —> slf4j-log4j12-version.jar —> log4j.jar —> 输出日志
解释:
JCL实现的重定向为SLF4J日志形式, 然后SLF4J转为Log4j12输出!