SLF4j用户手册

简单的Java日志模式(SLF4J)为各种日志框架,比如java.util、日志记录、logback和log4j作为一个简单的外观或抽象。
SLF4J允许用户在部署时插入所需的日志框架。注意,SLF4J-enabling意味着你的 library/application 只有一个强制
性的依赖性,即slf4j-api-1.7.12.jar。

SINCE 1.6.0 如果没有找到绑定类路径,然后SLF4J将默认为无操作的实现。
SINCE 1.7.0 Logger提供了使用Object[]打印方法,这种变化意味着SLF4J需要JDK 1.5或更高版本。在底层Java编译器将可变长度参数在方法中部分转换为Object[]。
SINCE 1.7.5 对日志检索进行了改善。
SINCE 1.7.9 通过将系统属性slf4j.detectLoggerNameMismatch设置为true,可以实现SLF4J自动检索错误命名。
一个简单的示例
编程的传统,下面是一个用SLF4J输出”HelloWorld”的例子。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info(“Hello World”);
}
}
运行这个例子,你首先要下载(http://www.slf4j.org/download.html)jar包并将其放到你的类路径中。编译和运行HelloWorld将导致以下输出被打印在控制台上。
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-api-1.7.12.jar
slf4j-simple-1.7.12.jar
编译和运行HelloWorld现在将产生以下输出:
0 [main] INFO HelloWorld - Hello World
Hello World

 下面的示例代码演示了SLF4J的典型使用模式

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Wombat {

final Logger logger = LoggerFactory.getLogger(Wombat.class);
Integer t;
Integer oldT;
public void setTemperature(Integer temperature) {

 oldT = t;        
 t = temperature;
 logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);
 if(temperature.intValue() > 50) {
   logger.info("Temperature has risen above 50 degrees.");
 }

}
}
Typical usage pattern

SLF4J不依赖于任何特殊的类装载机制。实际上,使用唯一的日志框架时SLF4J的绑定在编译时是固定的。
例如,slf4j-log4j12-1.7.12.jar在使用log4j时编译。在代码中,除了slf4j-api-1.7.12.jar外,
只能选择一个适当的模式来绑定到类路径。不要在类路径中添加多余的模式,下图是常用模式所需要jar包的展示。

SLF4J接口和各种适配器是极其简单的。而且SLF4J的加载和类加载器没有关系,因此也没有因此导致的一些问题。

 

资料来源

http://www.slf4j.org/manual.html

 

转载于:https://my.oschina.net/leewb/blog/603911

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值