序
这是我参与11月更文挑战的第7天,活动详情查看:[2021最后一次更文挑战]
嘿,线上系统出BUG了
哇,出现bug了,咋办咋办呀…….挠头.img……
哦,去看看日志吧!
对于已经上线的线上系统一旦出现bug最快速的方式只能是查看系统的错误日志,进行问题定位,然后进行解决问题。不能说像我们平时 debug 等模式进行问题定位,先通过日志找到问题,然后进行复现,从而解决后面在客户允许的情况先才能够重写部署新的包!
系统日志概述
对于目前的情况来说,对于Java系统中系统日志,使用比较广泛的日志框架:
log4j,logback….
log4j logback 关系
介绍它们的话我slf4j肯定得提一嘴了。
1 | vbnet复制代码Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks, such as java.util.logging, logback and log4j. SLF4J allows the end-user to plug in the desired logging framework at *deployment* time. Note that SLF4J-enabling your library/application implies the addition of only a single mandatory dependency, namely *slf4j-api-${project.version}.jar*. |
上面的意思其实就是:slf4j是一系列的日志接口,简单日志门面.
log4j和logback是众多日志框架中的几种,它们实现了部分slf4j的一些接口,下面的图应该更直观一点:
log4j
logback
关于详细的我就不多解释了有趣的是:
logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现(即直接实现了slf4j的接口,而log4j并没有直接实现,所以就需要一个适配器slf4j-log4j12.jar)
总结
1、slf4j是java的一个日志门面,实现了日志框架一些通用的api,log4j和logback是具体的日志框架。
2、他们可以单独的使用,也可以绑定slf4j一起使用。
单独使用,分别调用框架自己的方法来输出日志信息。绑定slf4j一起使用。调用slf4j的api来输入日志信息,具体使用与底层日志框架无关(需要底层框架的配置文件)。显然不推荐单独使用日志框架。假设项目中已经使用了log4j,而我们此时加载了一个类库,而这个类库依赖另一个日志框架。这个时候我们就需要维护两个日志框架,这是一个非常麻烦的事情。而使用了slf4j就不同了,由于应用调用的抽象层的api,与底层日志框架是无关的,因此可以任意更换日志框架。
logback在项目中的使用
springBoot项目拿来即用
首先一般来说我们不是应该会需要去应用一个logback的pom嘛,eg:
1 | xml复制代码<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic --> |
但是Spring2.x过后自带日志工具就是Slf4j,所以系统中spring-boot-statter 中已经引用了logback相关的依赖了,不需要去引用特殊的依赖了
所以一般springboot项目中 logback 或者 logf4j 如果你想要使用的话一般就直接配置一些相关的xml配置文件直接使用就行啦!!!
logback-spring.xml
在项目resources中创建 logback-spring.xml文件
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
小知识
今天遇见一个maven问题:
由于某些包应用导致引用的包出现了重复应用或者包冲突问题可以通过idea的maven视图工具进行处理
点击之后可以去看包之间的关联关系,如果出现上图中红色循环的话可以自己优化处理一下
处理方式:< exclusions></ exclusions> 这标签排除一些应用项目
1 | xml复制代码<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api --> |
END
这个月最后一天啦,这个也是这个月参加这个活动的最后一篇了,说实话都是自己在自娱自乐挺花时间的也有意义吧,写点东西一步步的逼着自己去弄代码,希望这个项目能按照自己的想法走下去吧!
本文转载自: 掘金