Logback,SLF4J,Log4J2。了解它们并学习如何使用。(翻译)
背景
如果您正在或在任何Java项目上工作,则可能已记录了一些debug,error或info语句以进行调试或跟踪。通过将库记录到磁盘或其他某种介质上的文件中来写这些语句。
日志记录是任何项目的关键方面,因此已经编写了各种框架。一些Java日志记录框架包括Log4j,logback,Apache通用日志记录,java.util.Logger等。所有这些日志记录器都将日志记录到文件或其他指定的介质中。
什么是SLF4J
SLF4j代表Java的简单日志记录外观。顾名思义,它是一个外观库,为log4j,logback和java.util.logger等日志记录库提供了抽象。而且不要做实际的记录。
因此,针对Java的“基本上简单的日志记录外观”可以用作各种日志记录框架的简单外观或抽象,从而允许最终用户在部署时插入所需的日志记录框架。
Log4j,Logback和java.util.Logger是日志记录库,它们实际编写日志并具有各自的优缺点。作为行业标准的是Log4j2和logback。Log4j1.x已于2015年弃用。
因此出现了一个问题,为什么要使用slf4j而不是直接使用log4j2或logback?
我们可以直接使用log4j2而不使用slf4j。但是您现在已锁定到log4j2库。因此,将来如果您想移至其他任何日志记录库。您必须转到所有Java文件并更改记录器语句。
您已经开发了要与大量人员共享的库或中间件。现在,他们还将使用具有自己的日志记录库的Log4j2,而不是对库和App使用通用的日志记录框架。
请记住,SLF4J不能替代Log4j;它只是一个门面。如果要开发库或中间件,请使用SLF4J,使用库的开发人员将根据其要求提供任何实现。
使用SLF4J作为,您的项目和记录器之间的耦合松散
如果您直接在代码中使用记录器,则您的代码可以直接访问特定于记录器的类。例如,如果使用Log4j,则应使用以下语句在所有类中检索logger的实例。
import org.apache.log4j.Logger;
static final Logger LOGGER = Logger.getLogger(MyClass.class);
假设如果出于某些奇怪的原因要用JDK logger替换Log4j2,则必须打开所有9,836个Java类,并用JDK logger替换上面的语句。
如果将Log4j2与SLF4J一起使用,则唯一需要的是用 JDK记录器绑定替换Log4j2 JAR文件(或maven依赖项)。您不想触摸任何源文件来替换记录器。

因此,现在您可以看到如果使用SLF4j,使用不同的日志记录库是多么容易。我们只是添加了log4j2 jar和SLF4j与Log4j2的绑定。它开始使用log4j2作为记录器。我们还必须添加log4j2.xml进行配置。

因此,基本上,我们必须指定要使用的记录器的绑定,并且可以使用相应的记录器实现

因此,基本上,通过使用SLF4J和Various Bridges,我们可以使用自己想要的记录器实现。

翻译原文
Logback,SLF4J,Log4J2。了解它们并学习如何使用。(翻译)的更多相关文章
- Spring Boot(十)Logback和Log4j2集成与日志发展史
一.简介 Java知名的日志有很多,比如:JUL.Log4j.JCL.SLF4J.Logback.Log4j2,那么这些日志框架之间有着怎样的关系?诞生的原因又是解决什么问题?下面一起来看. 1.1 ...
- 拨云见日,彻底弄清楚Java日志框架 log4j, logback, slf4j的区别与联系
log4j 以及 logback, slf4j 官网 日志框架的困惑 作为一个正常的项目,是必须有日志框架的存在的,没有日志,很难追踪一些奇奇怪怪的系统问题. 但是,我们经常在项目的依赖中,见到奇奇怪 ...
- 007-log-log4j2、slf4j+log4j2
一.概述 而log4j2的性能无论在同步日志模式还是异步日志模式下都是最佳的. 根本原因在于log4j2使用了LMAX, 一个无锁的线程间通信库代替了, logback和log4j之前的队列. 并发性 ...
- java日志管理 - slf4j+log4j2
1 . 概述 1.1 日志框架实现 log4j是apache实现的一个开源日志组件: logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j ...
- SpringBoot系列(十三)统一日志处理,logback+slf4j AOP+自定义注解,走起!
往期精彩推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件详解 SpringBoot系列(四)we ...
- log4j+logback+slf4j+commons-logging的关系与调试(转)
log4j+logback+slf4j+commons-logging的关系与调试 从Log4j迁移到LogBack的理由 http://www.tuicool.com/articles/beeeYv ...
- 使用 logback + slf4j 进行日志记录
此处主要介绍maven web工程下如何使用 logback + slf4j 进行日志记录. logback主要包含三个组成部分:Loggers(日志记录器).Appenders(输出目的在).La ...
- slf4j+log4j2模式的日志搭建
前言:今天打算为大家介绍一下我们我们在项目中必须得有的一个部分——日志!是的,就是那些让我们看着头疼的东西~~~好的日志可以帮助团队成员快速发现并解决问题,用好了可以大幅度提高代码缺陷修复效率!言归正 ...
- logback log4j log4j2 性能实测
logback log4j log4j2 性能实测 转载: https://blog.souche.com/logback-log4j-log4j2shi-ce/ 日志已经成为系统开发中不可或缺的一部 ...
- SpringBoot日志logback-spring.xml分环境log4j logback slf4j区别 springboot日志设置
转载. https://blog.csdn.net/qianyiyiding/article/details/76565810 springboot按照profile进行打印日志log4j logba ...
随机推荐
- 60)PHP,项目执行过程总结
- nginx负载均衡如何实现
什么是nginx?Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的Web和反向代理服务器,也是一个 IMAP/POP3/SMTP ...
- OpenCV 级联分类器
#include "opencv2/objdetect/objdetect.hpp" #include "opencv2/highgui/highgui.hpp" ...
- android优化中国风应用、完整NBA客户端、动态积分效果、文件传输、小说阅读器等源码
Android精选源码 android拖拽下拉关闭效果源码 一款优雅的中国风Android App源码 EasySignSeekBar一个漂亮而强大的自定义view15 android仿蘑菇街,蜜芽宝 ...
- H5页面如何引入vConsole
vConsole github地址vConsole 是腾讯开源的项目,这就简单的介绍一下使用 使用npm引入vconsole.min.js下载 vConsole 的最新版本.(不要直接下载 dev 分 ...
- 撰写introduction|引用
科研论文写作-introduction Introduction主要是写研究的来龙去脉,即该研究的历史,包括以前存在问题及其评价,和现今研究创新点,这样引导读者便于理解,阐述的内容也是由背景.目的.方 ...
- 署名|单位地址|Abstract
科研论文写作---如何署名单位地址 署名的作者要研究结果负责,其署名作为对所作贡献的认可. 参与设计实验想法,参与实验过程,参与起草论文或重大修改论文,或对论文定稿的学者拥有署名权.而资金资助& ...
- windows下Jmeter压测端口占用问题
https://blog.csdn.net/weixin_43757847/article/details/88188091 1 前情提要人脸识别项目中,云平台新增了人脸识别的校验接口.考虑到存在大量 ...
- python3之urllib代理池
1.常见状态吗 301:重定向到新的URL,永久性302:重定向到临时URL,非永久性304:请求的资源未更新400:非法请求401:请求未经授权403:禁止访问404:没找到对应页面500:服务器内 ...
- 关于JavaScript中的typeof与instanceof
JavaScript中typeof和instanceof可以用来判断一个数据的类型,什么时候选择使用typeof?什么时候选择使用instanceof? typeof运算符 typeof运算符返回值有 ...