Spring boot日志集成
剑圣无痕 人气:0前言:
上一章Spring boot2.0 日志集成方法分享(1)讲解了spring boot日志简单集成,将所有的日志都输出到一个文件中,但是在实际的项目中,我们需要将日志进行分类,常规日志、异常日志、监控日志等,需要将日志输出到不同的文件中。spring boot 日志默认采用的是sf4j+logback实现,默认配置文件为logback-spring.xml
,如果需要输出到不同的文件,需要自定义logback.xml文件。
logback.xml配置文件定义
<?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天,便于有些异常具备以周为频次发生的特点。
<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文件中配置如下信息
logging: config: classpath:logback.xml
附加说明
默认情况下日志配置文件存放在classpath路径下,项目打包后日志配置文件存放在jar包中,如果需要修改日志文件的信息(例如修改存放路径),需要重新打包,即为不方便,解决方案为将日志配置文件提取到项目外,引入外部的logback.xml文件
logging: config: file:config/logback.xml
file:文件的相对路径。
本文主要讲解的为常规日志和异常日志,下一张讲解监控日志输出。
加载全部内容