slf4j简介

[TOC]

1. 简介

日志对于任何一个Java应用程序,尤其是服务端程序是至关重要的,常用的如

  • java.util.logging
  • Apache log4j
  • logback
  • commons-logging 等。
    但是上述各种日志的实现方式都是和各自的jar包<font color='red'>强依赖</font>的,也就是说<font color='red'>耦合度太高</font>。由于某种原因,一旦你要换种日志框架那就必须更改你代码中的各处和日志有关的代码。比如这种重复但又不得不写的代码:
logger.debug("...... " + string1 + "... " + int1);

同时slf4j支持更加<font color='red'>高效</font>且<font color='red'>简洁</font>的方式来输出日志信息:

logger.debug("...... {}... {}",string1,int1);

       slf4j就像是jdbc一样进行了一次抽象,站在一个更高的角度进行日志记录,可以方便的在各种常用的日志框架之间转换而无需改变代码。也就是说<font color='red'>slf4j(Simple logging Facade for Java)不是一个真正的日志实现,而是一个抽象层</font>

2. 使用

(此处用log4j举例)

2.1 jar包

  • slf4j-api-1.7.10.jar
  • log4j-1.2.16.jar
  • slf4j-log4j12-1.7.12.jar

2.2 配置文件

log4j.properties

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %m %c{1}:(%L) %d{ABSOLUTE} %n

#log4j.rootLogger=debug, stdout
log4j.rootLogger=info, stdout
log4j.logger.footmark=debug

2.3 java代码中使用

package test.slf4j;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Main {
    Logger logger = LoggerFactory.getLogger(Main.class);

    @Test
    public void test1() {
        try {
            logger.info("111");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Test
    public void test2() {
        try {
            logger.info("id is {} .", 1);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

3. 切换为其他框架

3.1 jdk风格

如果想切换到jdk14的log的风格,只需要把 log4j-1.2.16.jar和slf4j-log4j12-1.7.12.jar从classpath中移除,同时classpath中加入slj4j-jdk14-1.4.1.jar即可。

3.2 simple log风格

4. 总结

使用java,无论何时,都应该针对抽象编程而不是针对具体实现编程,slf4j就是一种对日志记录的抽象,它并不是一种具体实现。

欢迎纠错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 10,434评论 0 6
  • 前言 最近学习开java web服务器开发,开始学习java,处理业务逻辑,但对其中的日志比较好奇,之前没怎么接触...
    九风萍舟阅读 8,540评论 1 6
  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 10,481评论 1 13
  • 本文参考了:http://blog.didispace.com/springcloud7/http://blog....
    WeiminSun阅读 12,017评论 0 23
  • 没错,相比于学校有暖气的宿舍,家里真的很冷,相比于都市的繁华,家里也更冷清,但不论家里条件有多不如外面,我们还是...
    南巷等风来阅读 1,150评论 0 0