09_常用类_日志
概述
希望系统能记住某些数据是被谁操作的,比如被谁删除了?
想分析用户浏览系统的具体情况,以便挖掘用户的具体喜好?
当系统在开发或者上线后出现了bug,崩溃了,该通过什么去分析、定位bug?
System.out.print的弊端:
- 信息展示在控制台,不能方便的将其记录到其他的位置(文件,数据库)
- 想取消记录的信息需要修改代码才可以完成
日志技术的优点:
- 可以将系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中)。
- 可以随时以开关的形式控制是日志的记录和取消,无需侵入到源代码中去进行修改。
日志体系:
日志接口:一些规范,提供给日志的实现框架设计的标准。
日志框架:牛人或者第三方公司已经做好的实现代码,后来者直接可以拿去使用。
注意:因为对Commons Logging接口不满意,有人就搞了SLF4J。
因为对Log4j的性能不满意,有人就搞了Logback,Logback是基于slf4j的日志规范实现的框架。
Logback
官网:https://logback.qos.ch/index.html
包含以下模块(jar包):
- logback-core: 该模块为其他两个模块提供基础代码。 (必须有),依赖jar包slf4j-api
- logback-classic:完整实现了slf4j API的模块。(必须有)
- logback-access 模块与 Tomcat 和 Jetty 等 Servlet 容器集成,以提供 HTTP 访问日志功能(可选模块,以后接触)
使用方法
-
在项目中引用依赖jar包
-
在src目录下创建配置文件logback.xml
-
创建Logback框架提供的Logger日志对象,后续使用其方法记录系统的日志信息。
public static final Logger LOGGER = LoggerFactory.getLogger(XXX.class);
配置文件说明:
-
输出位置
通过logback.xml 中的
标签可以设置输出位置。通常可以设置2个日志输出位置: -
一个是控制台
-
一个是系统文件中
-
-
日志级别
除此之外,日志级别还有: TRACE < DEBUG < INFO < WARN < ERROOR;
每个级别对应一个方法,默认级别是DEBUG。当在logback.xml文件中设置了某种日志级别后,系统将只输出当前级别以及高于当前级别的日志。
设置于配置文件中的root节点:
<root level=“INFO"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE" /> </root>