简单认识SLF4J

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。  
    • 占位符的使用  
      • 占位符会在系统运行时被某个提供的字符串替换  
      • 通过降低String的拼接次数,节省了新建的String对象
      • 降低String对象的生成,节省内存空间  
    • 延迟构建日志的开销
      降低堆内存的消耗+降低CPU处理字符串连接命令的时间   

      最近在实习,发现公司里面都是利用SLF4J的日志处理方式,同时阿里巴巴开发手册里面【日志规约】也强制要求,应用中不可直接使用日志系统 (Log 4 j 、 Logback) 中的 API ,而应依赖使用日志框架SLF 4 J 中的 API ,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。所以做了简单的学习并搭建了一个简单的maven项目进行了测试。

你可能感兴趣的:(java,日志)