java 日志系统
背景
设计之初提供了 集合、线程、IO、网络 等常用功能,有意无意地忽略了一个重要的功能: ** 输出日志** ,如何解决这个问题呢,IO组件来帮忙
System.out.print("我是普通日志");
System.err.print("我是错误日志");
常用日志框架
Slf4j Ceki Gülcü
一个日志API框架,本身没有实现
Logback Ceki Gülcü
一个高效多功能日志框架,本身有实现
Log4j Ceki Gülcü / apache
一个多功能日志框架,本身有实现
Commons-logging apache
一个日志API框架,本身没有实现
JDK logging java原生
jdk 1.4 之后实现
...
框架之间关系
层级结构
框架关系
实现关系
框架实现
常见日志适配器/桥接器
jcl-over-slf4j
将Commons-logging日志重定向到SL4J
jul-to-slf4j
将JDK logging框架日志重定向到SL4J
slf4j-jdk14
适配JDK实现SLF4j接口
slf4j-log4j12
适配log4j实现SLF4j接口
log4j-over-slf4j
将SLF4j重定向到Log4j
实际组合依赖关系
依赖实现
练习case
slf4j + logback
slf4j + log4j
slf4j + jdkLog
commons-logging + jdk
slf4j + logback & 适配 旧log4j
log4j + jdkLog & 适配 旧slf4j
slf4j + logback & 适配 旧jdkLog
slf4j + jdkLog & 适配 旧commons-logging