SLF4J和Logback日志框架详解

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

本文讲述SLF4J和Logback日志框架。

  
SLF4J是一套简单的日志外观模式的Java API,帮助在项目部署时对接各种日志实现。

LogBack在运行时使用JMX帮助修改日志配置,在生产状态下无需重启应用程序。

SLF4J

SLF4J是简单的日志外观模式框架,抽象了各种日志框架例如Logback、Log4j、Commons-logging和JDK自带的logging实现接口。它使得用户可以在部署时使用自己想要的日志框架。SLF4J是轻量级的,在性能方面几乎是零消耗的。

SLF4J没有替代任何日志框架,它仅仅是标准日志框架的外观模式。如果在类路径下除了SLF4J再没有任何日志框架,那么默认状态是在控制台输出日志。

Logback

Logback是Log4j的改进版本,而且原生支持SLF4J(因为是同一作者开发的),因此从其它日志框架如Log4j或JDK的logging迁移到Logback是完全可行的。

由于Logback原生支持SLF4J,因此Logback+SLF4J的组合是日志框架的最佳选择,比SLF4J+其它日志框架的组合要快一些。而且Logback的配置可以是XML或Groovy代码。

注意一个重要的特性,Logback通过JMX修改日志配置(比如日志级别从Debug调整到INFO),可以从JMX控制台直接操作,无需重启应用程序。

此外,Logback的异常堆栈跟踪的信息,有助于调试。

  1. java.lang.NullPointerException: null
  2. at com.fimt.poc.LoggingSample.<init>(LoggingSample.java:16) [classes/:na]
  3. at com.fimt.poc.LoggingSample.main(LoggingSample.java:23) [fimt-logging-poc-1.0.jar/:1.0]

SLF4J API用法

1. 从org.slf4j包导入Logger和LoggerFactory

  1. import org.slf4j.Logger;
  2. import org.slf4j.LoggerFactory;

2. 声明日志类

  1. private final Logger logger = LoggerFactory.getLogger(LoggingSample.class);

3. 使用debug、warn、info、error方法并跟踪适合的参数。

所有的方法默认都使用字符串作为输入。

  1. logger.info("This is sample info statement");

SLF4J结合Logback

在pom.xml包含下面的依赖:它会自动包含所有的依赖包logback-core、slf4j-api……

  1. <dependency>
  2. <groupId>ch.qos.logback</groupId>
  3. <artifactId>logback-classic</artifactId>
  4. <version>1.0.7</version>
  5. </dependency>

SLF4J能用于现有的日志框架如Log4j、Commons-logging、java.util.logging(JUL)。

SLF4J结合Log4j

在pom.xml包含下面的依赖

  1. <dependency>
  2. <groupId>org.slf4j</groupId>
  3. <artifactId>slf4j-log4j12</artifactId>
  4. <version>1.7.2</version>
  5. </dependency>

SLF4J结合JUL (java.util.logging)

在pom.xml包含下面的依赖

    1. <dependency>
    2. <groupId>org.slf4j</groupId>
    3. <artifactId>slf4j-jdk14</artifactId>
    4. <version>1.7.2</version>
    5. </dependency>

SLF4J和Logback日志框架详解的更多相关文章

  1. lombok+slf4j+logback SLF4J和Logback日志框架详解

    maven 包依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...

  2. slf4j log4j logback log4j2关系详解和相关用法

    来源:slf4j log4j logback关系详解和相关用法https://www.cnblogs.com/Sinte-Beuve/p/5758971.html The Simple Logging ...

  3. Logback日志使用详解

    概述 Logback建立于三个主要类之上:日志记录器(Logger),输出端(Appender)和日志格式化器(Layout).这三种组件协同工作,使开发者可以按照消息类型和级别来记录消息,还可以在程 ...

  4. 【转】logback 常用配置详解(序)logback 简介

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  5. logback常用配置详解及logback简介

    logback 简介(一) Ceki Gülcü在Java日志领域世界知名.他创造了Log4J ,这个最早的Java日志框架即便在JRE内置日志功能的竞争下仍然非常流行.随后他又着手实现SLF4J 这 ...

  6. Java中日志组件详解

    avalon-logkit Java中日志组件详解 lanhy 发布于 2020-9-1 11:35 224浏览 0收藏 作为开发人员,我相信您对日志记录工具并不陌生. Java还具有功能强大且功能强 ...

  7. mina框架详解

     转:http://blog.csdn.net/w13770269691/article/details/8614584 mina框架详解 分类: web2013-02-26 17:13 12651人 ...

  8. logback使用配置详解

    title: logback使用配置详解 date: 2017-04-25 16:42:49 tags: 日志 --- 1.介绍 Logback是由log4j创始人设计的另一个开源日志组件,它当前分为 ...

  9. logback 常用配置详解<appender>

    logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...

随机推荐

  1. 20165301 2017-2018-2 《Java程序设计》第六周学习总结

    20165301 2017-2018-2 <Java程序设计>第六周学习总结 教材学习内容总结 第七章:常用实类 String类 构造String对象 常量对象 String对象 Stri ...

  2. 学习笔记----float后不与前面元素同行解决办法。

    <li>文本<span> 16-08-17</span></li> 当非float的元素和float的元素在一起的时候(如上代码), 如果非float元 ...

  3. flask-login 学习(1)

    今天的目标,就是学习 flask-login.争取用1天时间,掌握个大概. 第一步:掌握flask-login的大致使用,具体参考了:https://www.centos.bz/2017/09/fla ...

  4. (转)粒子编辑器Particle designer属性的介绍

    转载:http://blog.csdn.net/ym19860303/article/details/9210539 Particle designer粒子编辑器可到这里下载(包含授权码):http: ...

  5. log4net 写日志配置

    1. nuget install package log4net 2.站点跟目录新建配置文件 LogWriterConfig.xml <?xml version="1.0" ...

  6. day2 字典常用的方法

        字典创建的方式: (1)d1 = {"k1":"v1","k2":"v2","k3":&qu ...

  7. day5冒泡排序

    冒泡排序:是一种基础的算法,实现数据的排序,排序的原则是前一个与后一个进行比较,如果前面的值大则交换,否则不交换,多次循环每次把最大的数据循环至后面就能够完成所需. 上面的图是冒泡排序的原理,每次循环 ...

  8. 【LOJ】#2351. 「JOI 2017/2018 决赛」毒蛇越狱

    题解 没啥特别好的算法,是个讨论题,由于0 1 ?三类数位中最少的不会超过6 如果1不超过6,那么记录\(f1(S)\)为 \(\sum_{T \subset S} val(T)\)这个可以通过类似F ...

  9. loadruner关联web_reg_save_param

    语法int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST); 参数说明: • ParamName ...

  10. LoadRunner函数–lr_vuser_status_message

    http://wenku.baidu.com/link?url=KbKGldKUkam4VyH5Z2doesA0ovQpuwM9nX_SnVMtWjo6rJPxj9DqB51z_m1giMbVo5Db ...