参考
快速开始
- 添加依赖
- 添加
spring-boot-starter-logging
依赖。 - 如果
pom
包含了任何spring-boot-starter
的依赖,如spring-boot-starter-web
则不需要添加任何依赖。因为已经默认集成了spring-boot-starter-logging
- 简单使用代码示例
1
2
3
4
5
6
7
8
9
10
11
class HelloController {
private final Logger logger = LoggerFactory.getLogger(HelloController.class);
public String hello() {
logger.info("处理'/'请求");
return "Hello, World!";
}
}
配置LogBack
- 配置文件位置:
src/main/resources/logback-spring.xml
,不存在则新建。 - 基本配置示例:下面的配置效果和没有创建时,使用默认配置一样。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29<configuration>
<springProfile name="dev">
<!-- appender 定义日志输出的位置和方式
name="CONSOLE" 自定义唯一标识符,用来被root/logger引用
class="ch.xxx" 指定了具体实现类,必须提供一个有效的、完全限定的类名。
-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- 定义如何格式化日志事件 -->
<encoder>
<!--pattern 用来指定日志输出的具体格式。
%d{yyyy-MM-dd HH:mm:ss} 表示日志事件的时间戳。这里的 {yyyy-MM-dd HH:mm:ss} 指定了日期格式。
%-5level:表示日志级别,并且宽度固定为5个字符(左对齐)
[%thread]:表示生成日志的线程名称,通常对于多线程应用非常有用,可以帮助区分不同线程产生的日志。
%logger{36}:表示记录器的名字,这里 {36} 表示最长截取36个字符。如果记录器的名字超过这个长度,则会被截断。
%msg:表示日志的实际消息内容。
%n:表示换行符,确保每条日志都从新的一行开始。
-->
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 设置root logger的级别为INFO,并将其与CONSOLE appender关联 -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</springProfile>
</configuration> - 将日志写入到文件示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<!-- 定义一个名为 FILE 的 appender -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 日志文件路径 -->
<file>logs/error.log</file>
<!-- 滚动策略 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天生成一个新的日志文件,并且旧文件以日期为后缀命名 -->
<fileNamePattern>logs/error-%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 保留30天的日志文件 -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{36} - %msg%n</pattern>
</encoder>
</appender>
日志配置基础概念讲解
Appender
:Appender是一个核心概念,它负责将日志事件输出到不同的目的地。换句话说,Appender定义了日志输出的位置和方式。通过Appender,你可以控制日志是输出到控制台、文件、数据库,还是通过网络发送等。ConsoleAppender
:将日志输出到控制台。这是最常用的Appender之一,适合开发环境中的快速调试。FileAppender
:将日志写入到文件中。适用于需要持久化存储日志信息的场景。RollingFileAppender
:扩展自FileAppender,增加了滚动功能,即当日志文件达到一定大小或符合某个时间条件时,会自动创建一个新的日志文件。这有助于管理日志文件的大小和数量,避免单个日志文件过大。AsyncAppender
:异步地将日志事件转发给其他Appender。通过使用独立线程来处理日志事件,它可以减少日志记录对应用程序性能的影响。
标签
<configuration>
:这是Logback的根标签,用于定义整个配置。<springProfile>
: 用于指定一个或多个Spring环境,只有当当前环境与指定的环境匹配时,才应用该配置。<appender-ref>
:用于引用一个已定义的Appender,并将其与Logger关联起来。<appender>
:用于定义一个Appender,它负责将日志事件输出到不同的目的地。<root>
:用于定义根Logger,它负责处理未匹配到其他Logger的日志事件。<logger>
:用于定义一个特定的包或类,并指定它的日志级别和Appender。