一、介绍:
简单日记门面(simple logging facade for java)slf4j是为各种loging apis提供一个简单统一的
接口,从而使得最终用户能够在部署的时候配置自己希望的loging apis实现。 logging api实现既可以
选择直接实现slf4j接的loging apis如: nlog4j、simplelogger。也可以通过slf4j提供的api实现
来开发相应的适配器如log4jloggeradapter、jdk14loggeradapter。在slf4j发行版本中包含了几个
jar包,如slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-log4j13.jar,
slf4j-jdk14.jar and slf4j-jcl.jar通过这些jar文件可以使编译期与具体的实现脱离。或者说可以
灵活的切换
二、官方站点
官方的网站:
三、为何使用slf4j?
我们在开发过程中可能使用各种log,每个log有不同的风格、布局,如果想灵活的切换那么slf4j是比较好的
选择。
四、如何使用slf4j
下边一段程序是经典的使用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.error("temperature set to {}. old temperature was {}.", t, oldt);
if (temperature.intvalue() > 50) {
logger.info("temperature has risen above 50 degrees.");
}
}
public static void main(string[] args) {
wombat wombat = new wombat();
wombat.settemperature(1);
wombat.settemperature(55);
}
}
下边介绍一下运行上边程序的过程。
1,编译上边的程序,需要classpath中加入slf4j-api-1.4.1.jar文件
2,运行时,需要classpath中加上slf4j-simple-1.4.1.jar
运行得到结果:
----------------------------
0 [main] error wombat - temperature set to 1. old temperature was null.
0 [main] error wombat - temperature set to 55. old temperature was 1.
0 [main] info wombat - temperature has risen above 50 degrees.
这个是simple log风格,
3,切换:如果想切换到jdk14的log的风格,只需要把slf4j-simple-1.4.1.jar
从classpath中移除,同时classpath中加入slj4j-jdk14-1.4.1.jar
这时的运行结果:
---------------------------------------------------
2007-7-9 10:40:15 wombat settemperature
严重: temperature set to 1. old temperature was null.
2007-7-9 10:40:16 wombat settemperature
严重: temperature set to 55. old temperature was 1.
2007-7-9 10:40:16 wombat settemperature
信息: temperature has risen above 50 degrees.
已经变成jdk14的log风格了。
4,再次切换到log4j
同样移除slj4j-jdk14-1.4.1.jar,加入slf4j-log4j12-1.4.1.jar,同时加入log4j-1.2.x.jar
加入log4j.properties。得到显示结果:
---------------------------------------
10:42:27,328 error wombat: temperature set to 1. old temperature was null.
10:42:27,328 error wombat: temperature set to 55. old temperature was 1.
10:42:27,328 info wombat: temperature has risen above 50 degrees.
在不同的风格中切换只需要在部署期切换类库就可以了,和开发时无关。