[关闭]
@xtccc 2015-12-24T11:18:37.000000Z 字数 1222 阅读 3240

SLF4J的使用

给我写信
GitHub

此处输入图片的描述

Java


参考 :





入门


这里下载slf4j的压缩包,然后解压。

将解压出的slf4j-api-1.7.12.jar放入编译路径中,然后编写下列的代码。

  1. package cn.gridx;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. public class App
  5. {
  6. public static void main( String[] args ) {
  7. System.out.println( "Hello World!" );
  8. Logger logger = LoggerFactory.getLogger(App.class);
  9. logger.info("Hi");
  10. System.out.println("Bye");
  11. }
  12. }

编译好,将slf4j-api-1.7.12.jar放入到classpath后,运行该文件,输出如下:

$ java -cp java.example-1.0-SNAPSHOT.jar:/Users/tao/Downloads/slf4j-1.7.12/slf4j-api-1.7.12.jar cn.gridx.App

Hello World!
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.

Bye

出现警告是因为:在Classpath中没有具体的logger实现类(例如log4j)。

现在,我们把slf4j-simple-1.7.12.jar放入到Classpath中,再次运行:

$ java -cp java.example-1.0-SNAPSHOT.jar:/Users/tao/Downloads/slf4j-1.7.12/slf4j-simple-1.7.12.jar:/Users/tao/Downloads/slf4j-1.7.12/slf4j-api-1.7.12.jar cn.gridx.App

Hello World!
[main] INFO cn.gridx.App - Hi
Bye

OK,现在日志正常打印出来了。




Bindings


SLF4J可以接受多种bindings,例如slf4j-simple-1.7.12.jar是一个很简单的logger实现,它将所有的日志打印到System.err。除了slf4j-simple-1.7.12.jar之外,还可以提供slf4j-log4j12-1.7.12.jar。

怎样切换binding?

很简单,在Classpath中,直接将用新的binding替换旧的binding即可。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注