目录
1 日志概述
日志
- 生活中的日志:生活中的日志就好比日记,可以记录你生活的点点滴滴。
- 程序中的日志:程序中的日志可以用来记录程序运行过程中的信息,并可以进行永久存储。
日志技术具备的优势
- 可以将系统执行的信息选择性的记录到指定的位置(控制台、文件中、数据库中)。
- 可以随时以开关的形式控制是否记录日志,无需修改源代码。
2 logback日志框架
2.1 logback概述
Logback日志框架
- Logback是 由log4j创始人设计的另-一个开源日志组件,性能比log4j要好
- 官方网站:https://logback.qos.ch/ index.html
- Logback是 基于slf4j的日志规范实现的框架。
Logback主要分为三个技术模块:
- logback-core: logback-core 模块为其他两个模块奠定了基础,必须有。
- logback-classic: 它是log4j的一个改良版本,同时它完整实现了slf4j API。
- logback-access模块与Tomcat和Jetty等Servlet容器集成,以提供HTTP访问日志功能
2.2 logback快速入门
需求:导入Logback日志技术到项目中,用于纪录系统的日志信息
分析:
- 在项目下新建文件夹lib,导入Logback的相关jar包到该文件夹下,并添加到项目依赖库中去。
- 将Logback的核心配置文件logback.xml直接拷贝到src目录下(必须是src下)。
- 在代码中获取日志的对象
public static final Logger LOGGER= LoggerFactory. getLogger( "类对象");
具体实现:
在模块中创建lib文件夹
将下载好的jar文件复制到lib文件夹中
选中文件右击添加为库
将xml配置文件复制到src目录下
public static final Logger LOGGER = LoggerFactory.getLogger("Test01");
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("功能出现异常," + e);
}
}
运行结果
2.3 配置详解
2.3.1 输出位置、格式设置
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.rolling.RollingF ileAppender">
去掉CONSOLE就只会在磁盘中记录
<!-- 注意:如果这里不配置关联打印位置,该位置将不会记录日志-->
<appender-ref ref = "CONSOLE"/>
<appender-ref ref="FILE" />
2.3.2 日志级别设置
如果系统.上线后只想记录一些错误的日志信息或者不想记录日志了,怎么办?
- 可以通过设置8志的输出级别来控制哪些8志信息输出或者不输出。
日志级别
- 级别程度依次是: TRACE< DEBUG< INFO<WARN<ERROR ;默认级别是debug (忽略大小写),对应其方法。
- 作用:用于控制系统中哪些日志级别是可以输出的,只输出级别不低于设定级别的日志信息。
- ALL和OFF分别是打开全部日志信息,及关闭全部日志信息。
具体在<root level= "INFO" >标签的level属性中设置8志级别。
例如将level修改为DEBUG,那么就会打印等级大于等于它的(包括DEBUG、INFO、WARN、ERROR),如果改为ERROR,那么就只打印ERROR相关的