前言
我们学习程序的时候,难免有些时候需要有文字记录,之前都是使用 System.out.println 来进行控制台记录,但是哈,这个玩意不行。
如果我们开发的这个东西上到生产,谁没事干去盯着控制台看,所以为了方便维护人员好排查错误,我们使用日志来进行记录。
一、认识日志
Java 中可以记录日志的框架有很多啊,好比 Log4j,Log4j2,logback,slf4j、Apache Commons Logging 等等。
Log4j 和 Log4j 2 其实都是一个公司写的,就是一个是 1 版本,一个是 2 版本,我们学习的是 2 版本,1版本是有问题的。
这个是他官网的介绍,详细大家可以去它官网上看。
这个 Log4j 2 在之前 1 的版本上改动了不少,不仅仅优化了性能,还解决了 Log2j 1 版本的问题。
二、为啥选择 Log4j
但是这么多日志,我们为啥要选择 Log4j?我们继续来看它官网
http://logging.apache.org/log4j/2.x/performance.html
这个是一个 异步记录-峰值吞吐量比较
可以看到,随着线程增多, Log4j 的吞吐量也上去了。
剩下的大家自己翻看一下,总的来说,Log4j 2 还是可以的。
接下来我们来学习一下 Log4j 2。
三、Log4j
打开百度百科认识一下 Log4j。
我们可以看到哈,这个 log4j 是一个开源的日志管理器,可以将日志信息输送到控制台、文件、GUI 组件等。
而且 log4j 可以通过配置文件灵活的配置,不需要修改代码。
我们其实之前学习 SSM 的时候有见过这个东西,只是没有具体说过。(我们之前学习的时候使用的是 Log4j 1 版本)
log4j 官网:http://logging.apache.org/log4j/2.x/
logo
四、Log4j & SLF4J
这两个东西我们以后会常见,我们来说说这两个是什么。
Log4j 我们上面说了,这个是一个日志管理器。那这个 SLF4J 是什么?
其实 SLF4J 也是一个日志框架,不过和其他日志框架不同的是,SLF4J 是一套接口,它不是具体的日志解决方案。
SLF4J 官网:http://www.slf4j.org/
这个 SLF4J 其实就是一个简单的抽象,说白了,这玩意可以理解成接口。
而我们的 Log4j 就是它的一个实现。当然,实现了这个 SLF4J 的不止有 Log4j,还有一个我们之后要学习的东西 Logback。
这个 SLF4J 其实也是有用的,我们后期使用 Logback 的时候,就可以通过 SLF4J 直接将 Log4j 改变成 Logback 或者是 JDK14 Logging。
具体我推荐大家再看一个博客,更好的理解这几个东西的关系。
https://blog.csdn.net/qq_32625839/article/details/80893550
写的很好,就和读故事一样。
这一篇的东西比较少,主要是认识一下 Log4j。
有问题可以联系我:QQ 2100363119,欢迎大家访问我的个人自愿网站:https://www.lemon1234.com
最近网站在改造中,欢迎各位提出意见。