SLF4J官网手册个人翻译

SLF4J用户手册

slf4j是java简单日志门面或各种各样日志框架的抽象(例如java util包自带的logging,logback、log4j),它允许终端用户在项目部署时插入真正所需要的日志框架,注意它让你的应用或者依赖库实现只有一个强制性的依赖,就是slf4j-api-xxx.jar.

  • 从1.6.0 如果在classpath路径下没有找到绑定,slf4j会默认使用一个没有操作的实现。

  • 从1.7.0 打印方法在Logger这个接口现在提供了多种接入方式来代替Object[]接受变量,这个改变需要jdk1.5或者更高,在这个环境下java编译把边长参数封装到对象数组Object[]中,因此Logger的接口在1.7环境下无法区分

  • 光是把slf4j-api-1.7.22.jar加入构建路径,可能会出现下面的问题:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

打印这个日志的原因时因为,在类路径没有找到slf4j的绑定。解决的办法是,额外再添加一个slf4j-simple.1.7.22.jar到类路径。

占位符的使用,我最喜欢的
 logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);
在发布时绑定日志框架
  • 各种组合
    • slf4j-log4j12-1.7.22.jar 使用log4j
    • slf4j-jdk14-1.7.22.jar 使用util包的logging
    • slf4j-nop-1.7.22.jar 静默丢弃所有日志
    • slf4j-simple-1.7.22.jar 简单实现,只输出INFO及以上日志
    • logback-classic-1.0.13.jar (requires logback-core-1.0.13.jar) 使用logback来输出日志,直接实现了slf4j的logger.
    • slf4j-jcl-1.7.22.jar 特别说明
 使用这个后会把slf4j委托j让commons-logging来输出所有日志,即是,jcl和slf4j是同一级的,都是日志门面
日志框架的的更换
使用slf4j后,如果想把util logging换成log4j,则只需要更换slf4j-jdk14-1.7.22.jar 成 slf4j-log4j12-1.7.22.jar即可,slf4j本身不依赖任何的其他依赖,事实上每一个slf4j的绑定会在编译时指定有且只有一个具体的日志框架
嵌入式组件如库或框架不应声明一个依赖任何SLF4J绑定只能依赖于slf4j-api

你可能感兴趣的:(java日志框架填坑)