Java中日志的使用
一、什么是日志
日志文件是用于记录系统操作事件的文件集合,可分为事件日志和消息日志(网上的解释)。
二、使用日志的好处
1、可以异步打印数据
2、可以追踪项目运行
3、可以记录错误日志
4、可以日志动态归档
5、可以打印信息的动态的关闭
6、可以通过第三方提供插件还能将微服务日志直接记录到 ELK中
三、常见的日志框架
JUL:(Java util logging)
JCL:Jakatra commons logging (Spring框架的内部默认使用)
JBOSS-Logging:这个是为了特定的框架编写的日志框架
log4j、logback、SLF4J、log4j2
我们以后在开发中经常选用的一个日志组合是 SLF4J(规范)+Logback(实现产品)。
四、SLF4J的基本使用
1、创建maven项目
2.写测试代码(如果不会写的话,可以借鉴官网文档)
public class T0 {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(T0.class);
logger.trace("---------Trace----------");
logger.debug("-----------debug--------");
logger.info("-----------info----------");
logger.warn("-----------warn----------");
logger.error("-----------error----------");
}
}
3.导包
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>2.0.0</version> </dependency>
那这样的运行结果就是
上面已近说了,SLF4J是个规范,相对于一个接口,不可能直接面向接口编程,官网有个图片就解释了,光有SLF4J是没用的,无法打印
五、SLF4J整合logback
从官网提供的图片中就可以知道整合logback只需要再导入需要的两个包就行。
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.3.0</version>
</dependency>
效果 :那为什么打印四句呢?
注意:在日志中一共有 5个级别 trace < debug < info < warn < error
默认是打印比trace级别高的内容。
1.那么他为什么要设置多种级别的关系呢?
因为如果当前的日志级别设置的是 debug的话,那么打印的时候 只打印 >=info级别的所有日志,说白了就是控制日志哪些需要输出哪些不需要输出。
2.为什么我导包就可以完成日志的打印 ?因为logback提供了一个类直接实现了SLF4J接口,从官方给的解释就可也看出。
六、SLF4J整合reload4j、logging
以reload4j为例(reload4j没有实现SLF4J,所以需要一个中间层去起到承上启下的作用)
六、SLF4J整合simple、no-operation
以上只不过是自己对日志的理解,如果知识点有问题,请指出。