GeXiangDong

精通Java、SQL、Spring的拼写,擅长Linux、Windows的开关机

0%

Spring Boot 项目中配置logback记录日志

logback是spring boot中的默认日志记录框架,spring推荐使用logback-spring.xml来做配置,loback-spring.xml可以放置到src\main\resources目录下。

通过在logback-spring.xml中配置不同的pfofile,可以实现不同的profile不同的日志记录方式,下面是一个例子。

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 下面这段是定义了一个appender,这个appender定义在了springProfile之外,
无论那个profile,都会先创建这个appender,即便是对应的profile没有使用这个appender,也要先创建它
如果创建失败(例如文件类型的appender,对应目录无权限),则spring boot启动失败
-->
<appender name="out" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>

<!-- 下面是这些定义会在development这个profile激活时才有效 -->
<springProfile name="development">
<appender name="target-file" class="ch.qos.logback.core.FileAppender">
<file>target/tutorial.log</file>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36}
- %msg%n</pattern>
</encoder>
</appender>
<!-- 可以设置不同的package/class记录不同级别的日志 -->
<logger name="cn.devmgr" level="TRACE" />
<root level="WARN">
<!-- 使用哪些appender记录日志,下面这2行是把日志输出到主控台和文件里 -->
<appender-ref ref="target-file" />
<appender-ref ref="out" />
</root>
</springProfile>

<!-- 下面是这些定义会在dev这个production激活时才有效 -->
<springProfile name="production">
<appender name="logfile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/web/logs/tutorial.%d{yyyy-MM-dd}.log
</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="cn.devmgr" level="INFO" />
<logger name="org.springframework" level="WARN" />
<root level="WARN">
<appender-ref ref="logfile" />
<appender-ref ref="out" />
</root>
</springProfile>
</configuration>

需要注意:有logback配置文件后,application.yml中的日志配置部分就失效了。