一、日志技术的概述
(一)日志
生活中的日志: 生活中的日志就好比日记,可以记录你生活的点点滴滴
程序中的日志: 程序中的日志可以用来记录程序运行过程中的信息,并可以进行永久存储。
(二)输出语句的弊端
信息只能展示在控制台
不能将其记录到其他的位置 (文件,数据库)
想取消记录的信息需要修改代码才可以完成
(三)日志技术具备的优势
可以将系统执行的信息选择性的记录到指定的位置(控制台、文件中、数据库中)
可以随时以开关的形式控制是否记录日志,无需修改源代码。
二、日志技术体系结构
日志规范:一些接口,提供给日志的实现框架设计的标准
日志框架:牛人或者第三方公司已经做好的日志记录实现代码,后来者直接可以拿去使用。
因为对CommonsLogging的接口不满意,有人就搞了SLF4。因为对Log4j的性能不满意,有人就搞了Logback.
日志的规范是什么,常见的有几种形式
日志规范大多是一些接口,提供给实现框架去设计的
常见的规范是:
Commons Logging
Simple Logging Facade for java
日志的实现框架有哪些常见的?
Log4j
Logback(我们重点学习的,其他的都大同小异)
三、Logback概述
(一)Logback日志框架
Logback是由log4j创始人设计的另一个开源日志组件,性能比log4j要好
Logback是基于slf4j的日志规范实现的框架
(二)Logback主要分为三个技术模块:
logback-core: logback-core 模块为其他两个模块奠定了基础,必须有。
logback-classic: 它是log4j的一个改良版本,同时它完整实现了slf4iAPl。
logback-access 模块与Tomcat和etty等 Servlet 容器集成,以提供 HTTP 访问日志功能
(三)使用Logback需要使用哪几个模块,各自的作用是什么
slf4j-api:日志规范
logback-core:基础模块
logback-classic: 它是log4j的一个改良版本,同时它完整实现了slf4jAPI
这三个模块网盘存有https://www.aliyundrive.com/s/LPEZCB9KqDB
四、Logback快速入门
需求:导入Logback日志技术到项目中,用于纪录系统的日志信息
分析:
① 在项目下新建文件夹lib,导入Logback的相关jar包到该文件夹下,并添加到项目依赖库中去。
② 将Logback的核心配置文件logback.xml直接拷贝到src目录下 (必须是src下)。
③ 3:在代码中获取日志的对象
public static final Logger LOGGER= LoggerFactory.getLogger("类对象");
步骤:
①创建一个lib,复制上面这三个包到lib目录下,选中三个包,右键选择添加为库(Add as Library...),确定。
②将logback.xml复制到src目录下>
③要使用的类添加
public static final Logger LOGGER = LoggerFactory.getLogger("logback.class");
测试
//main方法运行代码,C盘下的code文件回产生一个日志文件
try {
LOGGER.debug("第一个日志mian方法开始执行~~~");
LOGGER.info("开始记录第二条日志");
int a = 10;
int b = 0;
LOGGER.trace("a=" + a);
LOGGER.trace("b=" + b);
System.out.println(a / b);
} catch (Exception e) {
e.printStackTrace();
LOGGER.error("功能出现异常" + e);
}
五、Logback配置详解-输出位置、格式设置
Logback日志系统的特性都是通过核心配置文件logback.xml控制的
Logback日志输出位置、格式设置:
通过logbackxml中的 标签可以设置输出位置和日志信息的详细格式
通常可以设置2个日志输出位置: 一个是控制台、一个是系统文件中
输出到控制台的配置标志
<appender name="CONSOLE”class="ch.qos.logback.core.ConsoleAppender">
输出到系统文件的配置标志
<appender name="FILE”class="ch,gos.logback.core.rolling.RollingFileAppender">
六、Logback配置详解-日志级别设置
如果系统上线后只想记录一些错误的日志信息或者不想记录日志了,怎么办?
可以通过设置日志的输出级别来控制哪些日志信息输出或者不输出
日志级别
级别程度依次是:TRACE< DEBUG<INFO<WARN<ERROR ;默认级别是debug(忽略大小写),对应其方法。
作用: 用于控制系统中哪些日志级别是可以输出的,只输出级别不低于设定级别的日志信息。
ALL 和OFF分别是打开全部日志信息,及关闭全部日志信息。
具体在标签的level属性中设置日志级别