概述
把程序运行的信息记录到文件中,方便程序员定位Bug,并了解程序的执行情况。
把系统执行的信息,方便的记录的指定的位置(控制台、文件、数据库)。
可以随时以开关的形式控制日志的启停,无需侵入到源代码中进行修改。
日志框架
(1)配置文件,将下面三个jar包导入到库
(2)将Logback框架的核心文件logback.xml直接拷贝到src目录下
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- CONSOLE:表示当前的日志信息是可以输出到控制台的。 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- 修改输出对象 默认System.out 改为 System.err -->
<target>System.out</target>
<encoder>
<!-- %d 表示日期,%thread 表示线程名,%-5level 显示5个字符宽度,%msg 日志消息,%n 是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %c [%thread] : %msg%n</pattern>
</encoder>
</appender>
<!-- File 是输出的方向指向文件内 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<!-- 日志输出路径 -->
<file>D:/java/rizhi/test.log</file>
<!-- 指定日志文件拆分和压缩规则 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 通过指定压缩文件名,来确定分割文件方式 -->
<fileNamePattern>D:/java/rizhi/test.log-%d{yyyy-MM-dd}.log%i.gz</fileNamePattern>
<!-- 文件的最大大小 -->
<maxFileSize>1MB</maxFileSize>
</rollingPolicy>
</appender>
<!--
1. 设置日志级别。
2. 指定日志输出位置。
-->
<root level="ALL">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>
(3)创建Logback框架提供的Logger对象,然后用Logger对象调用其提供的方法就可以记录系统的日志信息。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class test {
// 创建一个Logger日志对象
public static final Logger LOGGER = LoggerFactory.getLogger("LogBackTest");
public static void main(String[] args) {
try {
LOGGER.info("chu方法开始执行啦~~~");
chu(10, 0);
LOGGER.info("chu方法执行成功~~~");
} catch (Exception e) {
LOGGER.error("chu方法执行失败了, 出现了bug~~~", e);
}
}
public static void chu(int a, int b) {
LOGGER.debug("参数a: " + a);
LOGGER.debug("参数b: " + b);
int c = a / b;
LOGGER.debug("结果c: " + c);
}
}
核心配置文件logback.xml
对Logback日志框架进行控制
Logback设置日志级别
日志级别:日志信息的类型,日志都会分级别,常见级别如下(优先级越来越高)
优点:
(1)方便查询日志
(2)
标签:技术,chu,日志,Logback,public,Logger,LOGGER From: https://blog.51cto.com/u_16382144/11910801