从0学习java混乱的日志体系-第一天

我们再看框架源码的时候经常看到用log输出日志,而不是我们平时用的 System.out.println();明眼人一看就知道这没技术含量了,要高大上,就要使用日志,可能又会问了,这日志是不是也是输出在控制台上面啊,如果这样,跟 System.out.println();有啥区别?区别可大了,log不但可以输出日志到控制台上面,而且可以输出到文件、数据库,甚至是通过网络进行传输,这就实现了我们记录日志的方便,输出到控制台的日志太混乱了,不便于我们进行分析,而且log还可以按天输出日志,一天一个文件,按包输出,一个包一个文件,这多神奇啊,我们后台就可以拿到这些数据进行分析从而进行数据分析了。

下面我们来说说常见的java日志框架:

commons-logging
是apache最早提供的日志的门面接口。它的主要作用是提供一个日志门面,使用者可以使用不同的日志实现。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。common-logging内部有一个Simple logger的简单实现,但是功能很弱。

slf4j

slf4j只是一种日志的门面和日志抽象框架,而java.util.logging,log4j,logback都是slf4j抽象框架的具体实现,只要调用slf4j的API就可以集成任何的实现框架在一起。

在这里插入图片描述

log4j

Apache下的一个开源日志框架,也是目前应用最广的一个日志框架。log4j有两个版本—
log4j 1.x和log4j 2.x,现在用的最多的基本上log4j 2.x,功能更多

logback

logback是slf4j的原生实现框架,同样是log4j同一个人之手,但拥有比log4j更多的优点和更多的特性,用来代替log4j。为什么logback较好参考下面文章

英文:https://logback.qos.ch/reasonsToSwitch.html
中文:http://www.oschina.net/translate/reasons-to-prefer-logbak-over-log4j

总结
1、commons-loggin,slf4j只是一种日志抽象门面,不是具体的日志框架。
2、log4j,logback是具体的日志框架。
3、一般首选使用slf4j+logback,或者slf4j+log4j,commons-logging+log4j。
4、一般不适用java.util.logging

后面的文章我会分享怎样这些框架

猜你喜欢

转载自blog.csdn.net/weixin_42002747/article/details/103702141