可以将系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中)。
可以随时以开关的形式控制日志的启停,无需侵入到源代码中去进行修改。
日志框架:牛人或者第三方公司已经做好的实现代码,后来者直接可以拿去使用。
日志接口:设计日志框架的一套标准,日志框架需要实现这些接口。
JUL框架基于JCL接口
Log4j和Logback框架基于SLF4J接口
因为对CommonsLogging接口不满意,有人就搞了SLF4J;因为对Log4j的性能不满意有人就搞了Logback.
目前主流的是Logback,主要学习Logback:
Logback日志框架官网:
Logback Homehttps://logback.qos.ch/index.html
所以:
大家不需要去网上下载了,这里直接附带了所需的所有内容:
链接:https://pan.baidu.com/s/1yy-dWH-hrkU_--ZLwT9pgQ?pwd=8888
提取码:8888
使用框架流程:
下载完框架后,复制如下三个jar包:
打开自己的项目:
如果自己项目没有lib目录,先创建一个,单击项目,右键->New->Directory,起名为lib,然后单击lib,ctrl+v复制到lib目录,然后单击lib,右键找到Add as Library,点击后再点ok即可。
然后找到我们下载的如下XML文件:
拷贝,在src目录下ctrl+v,至此,配置框架就完成了。
找到项目中的配置好的logback文件:
大致可以看出来有输出日志的相关格式:
并且可以将日志输出到文件中:
这个XML文件不需要我们自己写,能看懂大概就行了。
接下来演示具体的代码实现:
创建Logback框架提供的Logger对象,然后用Logger对象调用其提供的方法就可以记录系统的日志信息。(非常便捷)
package com.itheima.d3_log;
import org.slf4j.Logger;//这里要格外注意,别导错了。
import org.slf4j.LoggerFactory;
public class LogBackTest {
//创建一个Logger日志对象,只需要一个日志对象就够了。
public static final Logger LOGGER = LoggerFactory.getLogger("LogBackTest");
public static void main(String[] args) {
try {
LOGGER.info("chu方法开始执行");//info输出信息
chu(10,0);
LOGGER.info("chu方法执行成功");
}catch (Exception e){
LOGGER.error("chu法方法执行失败了,出现了bug~~~");
}
}
public static void chu(int a , int b){
LOGGER.debug("参数a:"+ a);//记录参数
LOGGER.debug("参数b:" + b);
int c = a/b;
LOGGER.info("结果是:" + c);//记录结果
}
}
输出结果:
注意看是否保存到文件中去了:
在自己电脑上找这个路径
成功显示日志(这里我运行两次,所以记录两次):
按照控制台输出的内容一一对应,不难理解。
日志文件拆分和压缩:
当文件大小到1MB时就会压缩和拆分,防止一个文件中日志过多,卡死打不开。
下图是控制日志的开关:level =OFF就是关闭日志,ALL自然就是开启日志。
如果不想输出到控制台,把控制台那一行删去即可。
日记级别指的是日志信息的类型,日志都会分级别,常见级别如下(优先级依次升高):
例如下图:
解析:
只有日志的级别是大于或等于核心配置文件配置的日志级别,才会被记录,否则不记录。
这里只记录info、warn、error。