前言:
上一章Spring boot2.0 日志集成方法分享(1)讲解了spring boot日志简单集成,将所有的日志都输出到一个文件中,但是在实际的项目中,我们需要将日志进行分类,常规日志、异常日志、监控日志等,需要将日志输出到不同的文件中。spring boot 日志默认采用的是sf4j+logback实现,默认配置文件为logback-spring.xml
,如果需要输出到不同的文件,需要自定义logback.xml文件。
logback.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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
<?xml version= "1.0" encoding= "UTF-8" ?> <configuration> <property name= "LOG_PATTERN" value= "%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" /> <property name= "LOG_PATH" value= "/logs" /> <!--控制台日志格式--> <appender name= "CONSOLE" class = "ch.qos.logback.core.ConsoleAppender" > <encoder charset= "UTF-8" > <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!--系统INFO级别日志--> <appender name= "SYS_INFO" class = "ch.qos.logback.core.rolling.RollingFileAppender" > <File>${LOG_PATH}/info.log</File> <append> true </append> <filter class = "ch.qos.logback.classic.filter.LevelFilter" > <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy" > <fileNamePattern>${LOG_PATH}/info-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> <maxHistory> 15 </maxHistory> <timeBasedFileNamingAndTriggeringPolicy class = "ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" > <maxFileSize>10MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder charset= "UTF-8" > <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!--系统EEOR级别日志--> <appender name= "SYS_ERROR" class = "ch.qos.logback.core.rolling.RollingFileAppender" > <File>${LOG_PATH}/error.log</File> <append> true </append> <!--error级别日志 --> <filter class = "ch.qos.logback.classic.filter.LevelFilter" > <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy" > <fileNamePattern>${LOG_PATH}/error-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> <maxHistory> 15 </maxHistory> <timeBasedFileNamingAndTriggeringPolicy class = "ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" > <maxFileSize>10MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder charset= "UTF-8" > <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <root level= "INFO" > <appender-ref ref= "CONSOLE" /> <appender-ref ref= "SYS_INFO" /> <appender-ref ref= "SYS_ERROR" /> </root> </configuration> |
配置说明 上述配置定义了info和error级别日志,分别输出到不同的日志文件。日志文件采用的滚动策略,每个文件大小为10M,建议保存的日期为15天,便于有些异常具备以周为频次发生的特点。
1
2
3
4
5
6
7
8
|
<rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy" > <fileNamePattern>${LOG_PATH}/error-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> <maxHistory> 15 </maxHistory> <timeBasedFileNamingAndTriggeringPolicy class = "ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" > <maxFileSize>10MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> |
引用自定义logback.xml文件
在项目的application.yml文件中配置如下信息
1
2
|
logging: config: classpath:logback.xml |
附加说明
默认情况下日志配置文件存放在classpath路径下,项目打包后日志配置文件存放在jar包中,如果需要修改日志文件的信息(例如修改存放路径),需要重新打包,即为不方便,解决方案为将日志配置文件提取到项目外,引入外部的logback.xml文件
1
2
|
logging: config: file:config/logback.xml |
file:文件的相对路径。
本文主要讲解的为常规日志和异常日志,下一张讲解监控日志输出。
到此这篇关于Spring boot2.0 实现日志集成的方法(2)的文章就介绍到这了,更多相关Spring boot日志集成内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://juejin.cn/post/7073287363715137544