先看这个链接 https://www.cnblogs.com/lalalazar/p/15694889.html
提到log4j就不得不提其主要贡献者,ceki gulcu 从1996年开始出来日志
简单总结:
log4j 最早出现 产品 --------------》apache收录1996
jul (java util logging) 产品------------ sun公司java母公司 2002
JCL (jakarta commons logging)接口 日志抽象层--------apache,打算一统日志江湖,指定日志标准
Slf4j(simple Logging Facade for java) 接口----------ceki大佬,-----桥接包(适配器)出现
logback 产品 ---------ceki
log4j2 产品+接口 -----------apache 2012-------》Log4j 2不兼容Log4j 1
log4j-api 接口
og4j-core 产品
总结到这可以发现:
接口给了无限可能,不写接口没有任何扩展性可言
没有什么问题是加一层适配器解决不了的,如果有那就再加一层。
连接了日志的整个框架,在使用的时候我们有什么启发呢
使用日志接口的api而不是日志产品的api,这样也符合依赖倒置原则
依赖选择一个即可
把日志产品依赖设置为 optional 和runtime scope 其中optional是为了依赖不会被传递,比如别人引用了这个jar,就会被迫使用不想使用的依赖
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
<optional>true</optional>
</dependency>
而scope设置为runtime,是可以保证日志的产品的依赖只有在运行时需要,编译时不需要,这样,开发人员就不会在编写代码的过程中使用到日志产品的API了
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.version}</version>
<scope>runtime</scope>
</dependency>
再加深入了解一点具体的名词:适配器桥接器
https://www.shuzhiduo.com/A/D854DDZQ5E/
日志配置文件的书写
https://www.cnblogs.com/duyinqiang/p/15903938.html
日志的五种级别
日志级别
日志一共分成5个等级,从低到高分别是:(有的说更多的级别,只记住这5个就成了,其他用不到)
debug
info
warming
error
fatal 致命的;导致失败的,灾难性的 (CRITICAL critical 美 /'krɪtɪkl/ 至关重要的)
说明:
DEBUG:详细的信息,通常只出现在诊断问题上,程序调试bug时使用
INFO:确认一切按预期运行,程序正常运行时使用
WARNING:程序未按预期运行时使用,但并不是错误,如:用户登录密码错误。一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作。
ERROR:更严重的问题,软件没能执行一些功能。程序出错误时使用,如:IO操作失败
FATAL(CRITICAL)代表发生了最严重的错误,会导致整个服务停止(或者需要整个服务停止)。简单地说就是服务死掉了。
这5个等级,也分别对应5种打日志的方法: debug 、info 、warning 、error 、critical。
默认的是warning等级,当在warning或warning之上等级的才记录日志信息。
日志等级从低到高的顺序是: debug < info < warning< error< critical
Log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。
通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
比如在这里定义了INFO级别, 则应用程序中所有DEBUG级别的日志信息将不被打印出来。
优先级高的将被打印出来。项目上生产环境时候一定得把debug的日志级别重新调为warn或者更高,避免产生大量日志。
后面有空把日志的书写格式写出来
Spring Boot中的几种写法。
debug样式的
log4j2样式的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)