在项目的开发中由于对于log4j、logback以及slf4j之间的关系和相关的知识不能清晰掌握,在业余时间进行记录。

1、三者之间的关系

 1)

  简答的讲就是slf4j是一系列的日志接口,而log4j logback是具体实现了的日志框架

  因为是接口,所以在项目中如果你不引用log4j 、logback或者其它日志框架你会发现,由于没有给出具体的logger实现,

  控制台是不能够正常的输出日志信息。也就是说我们在具体开发中,需要绑定一个日志框架,才能正常的使用slf4j。

 2)  

log4j和logback就是两个受欢迎的日志框架。但两者又有不同:

   log4j是apache实现的一个开源日志组件。包的实现(Wrapped implementations)

   logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架。是slf4j的原生实现。(Native implementations)

    log4j配置文件需要web.xml文件完成加载,logback.xml文件无需,只要放在资源根路径下就好。

3)总结:

  slf4j是java的一个日志门面,实现了日志框架一些通用的api,log4j和logback是具体的日志框架,他们可以单独的使用,也可以绑定slf4j一起使      用。

  单独使用:分别调用框架自己的方法来输出日志信息。

  绑定slf4j一起使用:调用slf4j的api来输入日志信息,具体使用与底层日志框架无关(需要底层框架的配置文件)

  显然这里我们不推荐单独使用日志框架。假设项目中已经使用了log4j,而我们此时加载了一个类库,而这个类库依赖另一个日志框架。这个时候我们就需要维护两个日志框架,这是一个非常麻烦的事情。而使用了slf4j就不同了,由于应用调用的抽象层的api,与底层日志框架是无关的,因此可以任意更换日志框架。

2、日志级别

log4j提供了4种日志级别和2种日志开关。logback与其一样,logback的日志级别定义在ch.qos.logback.classic.Level类中。
log4j官方网址: http://logging.apache.org/log4j/1.2/

4种级别:

DEBUG:输出调试信息;指出细粒度信息事件对调试应用程序是非常有帮助的。 
INFO: 输出提示信息;消息在粗粒度级别上突出强调应用程序的运行过程。 
WARN: 输出警告信息;表明会出现潜在错误的情形。 
ERROR:输出错误信息;指出虽然发生错误事件,但仍然不影响系统的继续运行。 
FATAL: 输出致命错误;指出每个严重的错误事件将会导致应用程序的退出。

2个日志开关 :
ALL level:打开所有日志记录开关;是最低等级的,用于打开所有日志记录。 
OFF level:关闭所有日志记录开关;是最高等级的,用于关闭所有日志记录。

按照范围从小到大排序:

OFF level > FATAL > ERROR > WARN > INFO > DEBUG > ALL level;范围大的会包含范围小的,例如日志设置为INFO级别的话则FATAL、ERROR、WARN、INFO的日志开关都是打开的,而DEBUG的日志开关将是关闭的。

建议:

Log4j或logback建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。

log4j 、logback 以及slf4j三者之间的关系的更多相关文章

  1. silverlight Canvas、StackPanel、Grid三者之间的关系

    学习 silverlight   首先Canvas.StackPanel.Grid 博客园里看到jailu的这篇文章整理得很好 贴下来: Silverlight提供了非常灵活的布局管理系统,让程序员和 ...

  2. 电脑结构和CPU、内存、硬盘三者之间的关系

    前面提到了,电脑之父——冯·诺伊曼提出了计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器. 我们看一下现在我们电脑的: 键盘鼠标.显示器.机箱.音响等等. 这里显示器为比较老的CRT显示器 ...

  3. 【Linux网络编程】TCP网络编程中connect()、listen()和accept()三者之间的关系

    [Linux网络编程]TCP网络编程中connect().listen()和accept()三者之间的关系 基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下: conn ...

  4. 网络互联技术(2)——前篇—【转载】电脑结构和CPU、内存、硬盘三者之间的关系

    原文链接:传送门 详细内容: 电脑结构和CPU.内存.硬盘三者之间的关系 前面提到了,电脑之父——冯·诺伊曼提出了计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器. 我们看一下现在我们电脑 ...

  5. 转:spring data jpa、 hibernate、 jpa 三者之间的关系

    原文链接:spring data jpa. hibernate. jpa 三者之间的关系 spring data jpa hibernate jpa 三者之间的关系 JPA规范与ORM框架之间的关系是 ...

  6. 程序中try、throw、catch三者之间的关系

    c++程序中,采用一种专门的结构化处理逻辑的异常处理机制. 1.try语句 try语句块的作用是启动异常处理机制,检测try语句块中程序语句执行时可能出现的异常. try语句块总是与catch一同出现 ...

  7. Window系统、主函数和窗体函数这三者之间的关系

    理解Window系统.主窗体.窗体函数这三者之间的关系,对于编写Windows程序十分重要. 主函数和窗体函数都是由Windows系统来调用的函数.仅仅只是主函数是程序启动之后.系统首先调用的函数: ...

  8. 5.Javascript 原型链之原型对象、实例和构造函数三者之间的关系

    前言:用了这么久js,对于它的原型链一直有种模糊的不确切感,很不爽,隧解析之. 本文主要解决的问题有以下三个: (1)constructor 和 prototype 以及实例之间啥关系? (2)pro ...

  9. 【面向对象】----【prototype&&__proto__&&实例化对象三者之间的关系】(四)-----【巷子】

    1.构造函数 a.什么是构造函数? 解释:通过关键字new 创建的函数叫做构造函数 作用:用来创建一个对象 废话少说直接上代码,首先我们还是创建一个构造函数人类 然后我们在创建两个实例,一个凡尘 一个 ...

随机推荐

  1. iOS音频与视频的开发(二)- 使用AVAudioRecorder进行录制音频

    1.使用AVAudioRecorder录制视频 AVAudioRecorder与AVAudioPlayer类似,它们都属于AVFoundation的类.AVAudioRecorder的功能类似于一个录 ...

  2. net 配置文件处理视频

    1. 视频 <staticContent>      <mimeMap fileExtension=".mp4" mimeType="video/mp4 ...

  3. April Fools Contest 2017 B

    Description Programmers' kids solve this riddle in 5-10 minutes. How fast can you do it? Input The i ...

  4. IIR型高斯滤波的原理及实现

    二.实现 GIMP中有IIR型高斯滤波的实现,代码位于contrast-retinex.c中,读者可自行查看.下面给出本人实现的核心代码: #include"stdafx.h" t ...

  5. Hash环/一致性Hash原理

    当前,Memcached.Redis这类分布式kv缓存已经非常普遍.从本篇开始,本系列将分析分布式缓存相关的原理.使用策略和最佳实践. 我们知道Memcached的分布式其实是一种“伪分布式”,也就是 ...

  6. Setting up IPS/inline for Linux in Suricata

    不多说,直接上干货! 见官网 https://suricata.readthedocs.io/en/latest/setting-up-ipsinline-for-linux.html Docs » ...

  7. 借教室 线段树and二分

    描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然希望 ...

  8. IO(下)

    7. 标准输入.输出流 7.1 标准输入流 源数据源是标准输入设备(键盘.鼠标.触摸屏)等输入设备.在java中用http://System.in 得到一个 InputStream 字节输入流. 需求 ...

  9. 从 fn_dbLog 解析操作日志(补充update)

    过去经常听到SQL server 日志,可是在提供的界面上看到的Log不是我们想要的,我们想窥探具体的数据操作日志.专业恢复追踪数据库操作日志的软件:ApexSQLLog,偶然发现SQL Server ...

  10. VPS环境配置预备篇

    VPS买到手了,在配置环境前要做哪些操作呢?老谢说一下自己的习惯,希望对和老谢一样的菜鸟有帮助更新系统内核和rpm包#安装yum-fastestmirror插件yum -y install yum-f ...