日志技术的概述
- 生活中的日志:生活中的日志就好比日记,记录生活的点点滴滴
- 程序中的日志:程序中的日志可以用来记录程序运行过程中的信息,并可以进行永久存储
输出语句的弊端 - 信息只能展示在控制台
- 不能将其记录到其他位置(文件,数据库)
- 想取消记录的信息需要修改代码才可以完成
日志技术具备的优势 - 可以将系统执行的信息选择性的记录到指定的位置(控制台,文件中,数据库中)
- 可以随时以开关的形式控制是否记录日志,无需修改源代码
日志技术体系
- 日志规范:一些接口,提供给日志的实现类框架设计的标准
- 日志框架:牛人或者在第三方公司以及做好的日志记录实现代码,后来直接可以拿去使用
- 应为对Commons Logging的接口不满意,有人就高了SLF4j,因为对Log4j的性能不满意,有人就高了Logback。
Logback概述
LogBack日志框架
- Logback时基于slf4j的日志规范实现的框架
- log4j创始人设计的另一个开源日志组件,性能比log4j要好
logback主要分为三个技术模块: - logback-core:logback-core模块为其它两个模块奠定了基础,必须有。
- logback-classic:它是log4j的一个改良版本,同时它完整实现类sff4j API
- logback-access:模块与Tomcat和Jetty等Servlet等容器集成,以提供你HTTP访问日志功能
使用Logback需要使用那几个模块,各自的作用是什么? - sff4j-API:日志规范
- logback-core:基础模块
- logback-classic:他是log4j一个改良版本,同时他完整实现了slf4j API
LogBack快速入门步骤
需求:导入LogBack日志技术项目中,用于记录系统的日志信息
分析:
- 在项目新建文件夹lib下,导入log back的相关jar包到该文件夹下,并且添加到项目依赖库中去。
- 将Logbcak的核心配置文件logback.xml直接拷贝到src目录下(必须是src下)
- 在代码中获取日志对象4. 使用日志对象LOGGER嗲用其方法输出不能的日志信息
public class Test {
public static final Logger LOGGER = LoggerFactory.getLogger("Test");
public static void main(String[] args) {
try {
LOGGER.debug("main开始执行");
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("功能出现异常");
}
}
}
在项目中存放logback.xml文件,其中
<file>D:/code/itheima-data.log</file>
表示将日志文件存放在C:/code/下
Logback配置详解-输出位置、格式设置
logback日志系统的特性都是通过核心配置文件logback.xml控制的
Logback日志输出位置、格式设置:
- 通过logback.xml中的
<append>
标签可以设置输出位置和日志信息的详细格式 - 通常可以设置2个日志输出位置:一个是控制台,一个是系统文件中
输出到控制台的配置标志
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
输出到系统文件的配置标志
<appender name="FILE" class="ch.qos.logback.core.RollingFileAppender">
LogBack配置详解-日志级别设置
可以通过设置日志输出级别来控制哪些日志信息输出或者不输出
日志级别
- 级别成都一次是:
TRACE<DEBUG<INFO<WARN<ERROR
默认级别是debug(忽略大小写),对于其方法。级别最高有优先输出 - 作用:用于控制系统中哪些日志级别是可以输出的,只输出级别不低于设定级别的日志信息
- ALL和OFF分别是打开全部日志信息,及关闭全部日志信息