Java日志框架

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

代码素材

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容