资讯专栏INFORMATION COLUMN

聊一聊Java日志之一:slf4j

church / 2981人阅读

摘要:一引言程序员都知道,日志对于一个应用系统来说至关重要,现在应该也没有无日志的系统了吧。具体的日志实现还是需要使用不同的日志框架来完成。然后如下使用测试测试测试测试运行结果发现并没有打印出日志,这是因为缺少了配置文件。

一、引言
  程序员都知道,日志对于一个应用系统来说至关重要,现在应该也没有无日志的系统了吧。很多程序员都知道 Log4j,Logback,java.util.logging 等日志库,最近看到一些老的项目还是单纯地只使用 Log4j 等日志库,如果你还不懂 Slf4j,那么从现在开始,该是时候学习使用下 Slf4j 了。

  SLF4J,即简单日志门面(Simple Logging Facade for Java),它并不是用来替代 Log4j,Logback 等日志库的,它只是提供了一堆接口以及一个 LoggerFactory 工厂类,是为了兼容不同的日志库而抽象出来的适配器接口。具体的日志实现还是需要使用不同的日志框架来完成。

  SLF4J 和 JCL(以前叫 Jakarta Commons Logging,现在叫 Apache Commons Logging) 都是日志门面,所不同的是 JCL 是在运行时动态寻找日志库进行绑定,SLF4J 是在编译时静态绑定指定的日志库。现在还是很多应用系统使用 JCL + Log4j 这种搭配的,不过当程序规模越来越庞大是,JCL 的动态绑定并不是总能成功的,在Sping官方文档中 Not Using Commons Logging 小节也提到因为算法问题引起。大概这也是 SLF4J 产生的一个原因吧。

二、简单使用

  这里使用 slf4j + log4j 演示下简单的使用。需要导入三个包:slf4j-1.7.25.jarslf4j-log4j12-1.7.25.jarlog4j-1.2.17.jar 。然后如下使用:

package cn.mqq;

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

/**
 * @author mqq
 * @create 2018-03-13 23:46
 */
public class Test {
    private static final Logger log = LoggerFactory.getLogger(Test.class);
    public static void main(String[] args) {
        log.debug("debug 测试");
        log.info("info 测试");
        log.warn("warn 测试");
        log.error("error 测试");
    }
}

运行结果:

发现并没有打印出日志,这是因为缺少了 log4j.properties 配置文件。在 /src/main/resources 目录下添加文件 log4j.properties,内容如下:

log4j.rootLogger = DEBUG,CONSOLE

log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold = INFO
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%c] - %m%n

再次运行如下:

运行工程。

三、小结

  日志的使用就是这么简单,用了 slf4j 以后,通过修改不同的 jar 包,可以很方便地更换不同的日志框架,如把 slf4j-log4j12-1.7.25.jarlog4j-1.2.17.jar 换成 logback-classic-1.2.3.jar 包即可把 log4j 日志库换成 logback 日志库,配置文件也要换成相应的 logback 配置文件。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68796.html

相关文章

  • [一聊系列]一聊前端功能统计那些事儿

    摘要:欢迎大家收看聊一聊系列,这一套系列文章,可以帮助前端工程师们了解前端的方方面面不仅仅是代码什么是功能统计作为一名开发,我们的产品发布出去之后,无论是产品还是运营,其实都是想及时了解产品对用户产生的影响的。下一章,我们将继续聊聊速度统计。 欢迎大家收看聊一聊系列,这一套系列文章,可以帮助前端工程师们了解前端的方方面面(不仅仅是代码):https://segmentfault.com/bl...

    PAMPANG 评论0 收藏0
  • [一聊系列]一聊前端功能统计那些事儿

    摘要:欢迎大家收看聊一聊系列,这一套系列文章,可以帮助前端工程师们了解前端的方方面面不仅仅是代码什么是功能统计作为一名开发,我们的产品发布出去之后,无论是产品还是运营,其实都是想及时了解产品对用户产生的影响的。下一章,我们将继续聊聊速度统计。 欢迎大家收看聊一聊系列,这一套系列文章,可以帮助前端工程师们了解前端的方方面面(不仅仅是代码):https://segmentfault.com/bl...

    妤锋シ 评论0 收藏0

发表评论

0条评论

church

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<