SLF4J
- JAVA 简易日志门面 【Simple Logging Facade for Java,缩写SLF4J】
- 宏观定义:一套包装Logging 框架的界面程式,以外观模式实现
- 定性:它仅仅是一个提供日志输出的统一接口,而非具体的日志实现方案。具体的日志实现方案有:log4j、JDK14、Simple等。
- 支持5种记录等级 【级别依次升高】
- TRACE 比 DEBUG 级别的粒度更细。
- DEBUG 指明细致的事件信息,对调试应用最有用。
- INFO 【常用,目前项目中用到的比较多】 指明描述信息,从粗粒度上描述了应用运行过程。
- WARN 指明潜在的有害状况。
- ERROR 【常用,目前项目中用到的比较多】 指明错误事件,但应用可能还能继续运行。
-
优势
- SLF4J作为一个抽象层,允许后台使用任意日志类库。 测试方式: 1)新建一个maven项目 2)在pom文件中添加不同日志系统的依赖 3)利用main类进行测试 可以发现,main类的代码不需要改动,但控制台输出日志信息格式等会根据当前日志系统特点而展示。
- 使得系统代码独立于任意一个特定的日志API。
- 占位符的使用
-
延迟构建日志的开销 降低堆内存的消耗+降低cpu处理字符串连接命令的时间
最近在实习,发现公司里面都是利用SLF4J的日志处理方式,同时阿里巴巴开发手册里面【日志规约】也强制要求,应用中不可直接使用日志系统 (Log 4 j 、 Logback) 中的 API,而应依赖使用日志框架SLF 4 J 中的 API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。所以做了简单的学习并搭建了一个简单的maven项目进行了测试。