日志技术Logback - 指南
一、准备工作
引入logback的依赖(springboot中无需引入,在springboot中已经传递了此依赖)
ch.qos.logback
logback-classic
1.4.11
二、引入配置文件
引入配置文件 logback.xml,resources 目录下
配置文件解析
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n
D:/tlias-%d{yyyy-MM-dd}-%i.log
30
10MB
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n
(1)控制台输出解析
appender元素:
- 定义了一个名为"STDOUT"的日志输出组件
class="ch.qos.logback.core.ConsoleAppender"指定这是一个控制台输出的appender,用于将日志信息输出到控制台
encoder元素:
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"表示使用模式布局编码器- 作用是将日志事件转换为指定格式的字符串
pattern元素:
- 定义了日志输出的具体格式模板
- 包含多个占位符,每个占位符有特定含义:
%d{yyyy-MM-dd HH:mm:ss.SSS}:输出日期时间,精确到毫秒(可以在打括号内修改想要的格式)[%thread]:输出线程名称,用方括号包围%-5level:输出日志级别,左对齐,固定占5个字符宽度(如果不足五个字符宽度,就会用空格占位)%logger{50}:输出日志记录器名称,最大长度50个字符(如果超过50,就会自动简化)%msg:输出实际的日志消息内容(就是你在写程序是log.debug("xxxx")之类的发来的内容)%n:表示换行符
(2)文件输出解析
appender元素:
- 定义了一个名为"FILE"的日志输出组件
class="ch.qos.logback.core.rolling.RollingFileAppender"指定这是一个滚动文件输出的appender,用于将日志信息输出到文件,并支持日志文件的滚动管理
rollingPolicy元素:
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"表示使用基于时间和大小的滚动策略- 这是一种复合滚动策略,当日志文件达到指定大小或经过指定时间时,会创建新的日志文件
FileNamePattern元素:
- 定义日志文件的命名模式:
D:/tlias-%d{yyyy-MM-dd}-%i.log(保存的位置及其文件名)
- 定义日志文件的命名模式:
MaxHistory元素:
- 设置最多保留30个历史日志文件
- 超过这个数量后,最旧的日志文件会被自动删除
maxFileSize元素:
- 设置单个日志文件的最大大小为10MB
- 当日志文件大小达到10MB时,会自动创建新的日志文件
encoder元素:
- 与控制台输出类似,定义了日志的格式(区别是写在文件里的日志)
- 确保文件日志与控制台日志格式一致,便于统一查看
(3)日志开关root
负责指定输出哪些日志,level可以限定输出的日志范围
appender-ref可以引用上方定义的日志记录器
三、日志级别
| 日志级别 | 说明 | 记录方式 |
| trace | 追踪,记录程序运行轨迹 【使用很少】 | log.trace("...") |
| debug | 调试,记录程序调试过程中的信息,实际应用中一般将其视为最低级别 【使用较多】 | log.debug("...") |
| info | 记录一般信息,描述程序运行的关键事件,如:网络连接、io操作 【使用较多】 | log.info("...") |
| warn | 警告信息,记录潜在有害的情况 【使用较多】 | log.warn("...") |
| error | 错误信息 【使用较多】 | log.error("...") |
我们想要一个类输出日志,有固定的套路。
只需要在类内定义一个Logger对象(注意我这里使用的是org.slf4j的Logger对象)
private static final Logger log = LoggerFactory.getLogger(所属类的字节码文件)

然后在类中就可以通过 log.级别( “日志内容” ) 输出想要的内容。
浙公网安备 33010602011771号