博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日志组件的统一门面
阅读量:7118 次
发布时间:2019-06-28

本文共 3268 字,大约阅读时间需要 10 分钟。

  hot3.png

前面介绍了 JDKLog、LOG4J、LogBack 三种日志记录组件,其中

  • JDKLog 存在于 JDK 官方 API 中,功能简单,只适用于非常简单的小程序。
  • LOG4J 功能强大,常用于许多商业化的大型项目中,是一个非常优秀的日志组件。
  • LogBack 则是比 LOG4J 功能更加强大的日志记录组件,其在效率、实现方式方面都有了极大的提升。

在实际的项目应用中,有时候可能会从一个日志组件切换到另外一个日志组件,这时候往往需要在代码上进行很大的改动。为了避免切换日志组件时要改动代码,这时候一个叫做 SLF4J(Simple Logging Facade for Java,即Java简单日志记录接口集)的东西出现了。

所有的日志组件都实现了这个集合,那么我们在编写代码的时候只需要根据这一个日志接口集去进行代码编写,当我们需要更换日志组件的时候,我们只需要更换一个具体的日志组件Jar包就可以了。他们之间的关系如下:

 

下面介绍几种常见的日志组件和SLF4J组合的使用方法。

SLF4J + JDKLog

SLF4J + JDKLog 需要依赖:JDK、slf4j-api.jar、slf4j-jdk.jar包,但 Maven 中只需要导入一个即可(因为slf4j-api已经在slf4j-jdk14依赖中了):

org.slf4j
slf4j-api
1.7.21
org.slf4j
slf4j-jdk14
1.7.21

编写测试类:

import org.slf4j.Logger;import org.slf4j.LoggerFactory; /** * SLF4J + JDKLog */public class Slf4jJDKLog {    final static Logger logger = LoggerFactory.getLogger(Slf4jJDKLog.class);    public static void main(String[] args) {        logger.trace("Trace Level.");        logger.info("Info Level.");        logger.warn("Warn Level.");        logger.error("Error Level.");    }}

输出结果:

七月 15, 2016 3:30:02 下午 com.chanshuyi.slf4j.Slf4jJDKLog main信息: Info Level.七月 15, 2016 3:30:02 下午 com.chanshuyi.slf4j.Slf4jJDKLog main警告: Warn Level.七月 15, 2016 3:30:02 下午 com.chanshuyi.slf4j.Slf4jJDKLog main严重: Error Level.

SLF4J + LOG4J 

需要依赖的 Jar 包:slf4j-api.jar、slf4j-412.jar、log4j.jar,导入Maven依赖:

org.slf4j
slf4j-api
1.7.21
org.slf4j
slf4j-log4j12
1.7.21
log4j
log4j
1.2.17

配置 log4j.xml 文件:

我们还是用上面的代码,无需做改变,运行结果为:

[15 16:04:06,371 DEBUG] [main] slf4j.SLF4JLog - Debug Level.[15 16:04:06,371 INFO ] [main] slf4j.SLF4JLog - Info Level.[15 16:04:06,371 WARN ] [main] slf4j.SLF4JLog - Warn Level.[15 16:04:06,371 ERROR] [main] slf4j.SLF4JLog - Error Level.

SLF4J + LogBack

org.slf4j
slf4j-api
1.7.21
ch.qos.logback
logback-classic
1.1.7
ch.qos.logback
logback-core
1.1.7

配置 logback.xml 文件:

%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

我们还是用上面的代码,无需做改变,运行结果为:

16:08:01.040 [main] TRACE com.chanshuyi.slf4j.SLF4JLog - Trace Level.16:08:01.042 [main] DEBUG com.chanshuyi.slf4j.SLF4JLog - Debug Level.16:08:01.043 [main] INFO  com.chanshuyi.slf4j.SLF4JLog - Info Level.16:08:01.043 [main] WARN  com.chanshuyi.slf4j.SLF4JLog - Warn Level.16:08:01.043 [main] ERROR com.chanshuyi.slf4j.SLF4JLog - Error Level.

除了JDKLog、LOG4J、LogBack之外,还可以与slf4j-simple.jar、slf4j-nop.jar进行配置使用。方式都大同小异,这里不再赘述。  

转自:http://www.cnblogs.com/chanshuyi/p/5673640.html

转载于:https://my.oschina.net/mifans/blog/845571

你可能感兴趣的文章
波兰表示法 前缀表示法
查看>>
js类型转换函数
查看>>
016 设计模式之代理模式
查看>>
NOD 1113矩阵快速幂
查看>>
Accurately Say "CocaCola"!(找规律+打表)
查看>>
GTK--布局管理
查看>>
php抓取网页特定div区块及图片,从简单入手
查看>>
requests模块报错:Use body.encode('utf-8') if you want to send it encoded in UTF-8.
查看>>
JavaScript 基础
查看>>
单元测试
查看>>
silverlight 动态绑定树TreeView 节点添加CheckBox
查看>>
Sql Server中的表组织和索引组织(聚集索引结构,非聚集索引结构,堆结构)
查看>>
GIT
查看>>
MAX SUM
查看>>
uva 11121 Base -2
查看>>
poj 1523 SPF
查看>>
POJ 2318 TOYS(点与直线的关系 叉积&&二分)
查看>>
To Fill or Not to Fill
查看>>
Fiddler ScriptEditor 扩展编程oSession相关方法
查看>>
UIView 移除子视图
查看>>