之前记录日志的方法都是使用输出语句:

这种方法其实并不适合用来记录日志:
我们可以使用更专业更好用的日志技术来记录日志

Logback日志框架官方网站:Logback Home

想使用Logback日志框架,至少需要在项目中整合如下三个模块:
![]()
注意:对Logback日志框架的控制,都是通过其核心配置文件logback.xml来实现的
logback.xml:
- <?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>E:/study/java日志/dzy-data.log</file>
- <!--指定日志文件拆分和压缩规则-->
- <rollingPolicy
- class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <!--通过指定压缩文件名称,来确定分割文件方式-->
- <fileNamePattern>E:/study/java日志/dzy-data-%i-%d{yyyy-MM-dd}-.log.gz</fileNamePattern>
- <!--文件拆分大小-->
- <maxFileSize>1MB</maxFileSize>
- </rollingPolicy>
- </appender>
-
- <!--
- 1、控制日志的输出情况:如,开启日志,取消日志 ALL打开 OFF关闭
- -->
- <root level="INFO">
- <appender-ref ref="CONSOLE"/>
- <appender-ref ref="FILE" />
- </root>
- </configuration>
核心配置文件logback.xml
日志的输出位置、输出格式的设置

开启日志(ALL),取消日志(OFF)

使用日志记录系统运行信息:
- package com.zeyu.LogBack;
-
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
-
- public class logBackTest1 {
- //创建一个Logger日志对象
- public static final Logger LOGGER = LoggerFactory.getLogger("LogBackTest");
- public static void main(String[] args) {
- try {
- LOGGER.info("除法方法开始执行------"); //info重要信息
- divide(10,0);
- LOGGER.info("除法方法执行成功------");
- } catch (Exception e) {
- LOGGER.error("除法方法执行失败,出现bug------"); //error错误信息
- }
- }
-
- public static void divide(int a, int b){
- LOGGER.debug("参数a = " + a); //debug调试
- LOGGER.debug("参数b = " + b);
- LOGGER.info("结果是" + (a / b));
- }
- }
运行结果:

记录文件:

文件拆分:

表示当记录文件大小到达指定的1mb大小便将记录文件在指定路径压缩成指定名字的压缩包
前面是路径,后面是压缩包的名字,%i为自增的序号,%d记录当天日期
进行文件拆分主要是为了防止日志文档里面的内容过大,导致打不开或者打开后卡顿
日志级别


level的值也可以是日志级别,表示只显示大于等于设置的日志级别的日志信息