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