Springboot+Logback
参考文章:https://juejin.im/post/5b51f85c5188251af91a7525
日志的记录可以容易定位一些生产问题,可以配合Elasticsearch记录操作日志
SpringBoot默认用日志框架是logback
logback由三个模块组成
logback-core -----> 基础模块,提供关键的通用机制
logback-classic -----> 实现简单日志门面
logback-access -----> 与servlet容器交互的模块
LogBack配置文件
log配置文件加载顺序:
logback.xml--->application.properties--->logback-spring.xml.
logback.xml加载早于application.properties,所以如果你在logback.xml使用了变量时,而恰好这个变量是写在application.properties时,那么就会获取不到,只要改成logback-spring.xml就可以解决
xml
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<property name="glmapper-name" value="glmapper-demo" />
<contextName>${glmapper-name}</contextName>
<appender>
//xxxx
</appender>
<logger>
//xxxx
</logger>
<root>
//xxxx
</root>
</configuration>
详细配置:https://www.jianshu.com/p/0d04566fd236
日志配置参考
base.xml
xml
<?xml version="1.0" encoding="UTF-8"?>
<included>
<property name="log_pattern_default" value="%d{HH:mm:ss.SSS} %-5level [%thread] %logger{36} - %msg%n%ex"/>
<property name="log_file_default" value="log/service.log"/>
<property name="log_file_pattern_default" value="log/service.%d{yyyy-MM-dd}.%i.log"/>
<property name="log_file_max_history_default" value="10"/>
<property name="log_file_max_size_default" value="100MB"/>
<property name="log_file_max_total_size_default" value="10GB"/>
<appender name="file_out" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log_file:-${log_file_default}}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log_file_pattern:-${log_file_pattern_default}}</fileNamePattern>
<maxFileSize>${log_file_max_size:-${log_file_max_size_default}}</maxFileSize>
<maxHistory>${log_file_max_history:-${log_file_max_history_default}}</maxHistory>
<totalSizeCap>${log_file_max_total_size:-${log_file_max_total_size_default}}</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${log_pattern:-${log_pattern_default}}</pattern>
</encoder>
</appender>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log_pattern:-${log_pattern_default}}</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="stdout"/>
<appender-ref ref="file_out"/>
</root>
</included>
logback-spring.xml
xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="log_file" value="log/service.log"/>
<property name="log_file_pattern" value="log/service.%d{yyyy-MM-dd}.%i.log"/>
<include resource="top/xinzhang0618/gaohuo/logger/base.xml"/>
<springProfile name="dev,test">
<logger name="top.xinzhang0618.gaohuo" level="debug" additivity="false">
<appender-ref ref="file_out"/>
<appender-ref ref="stdout"/>
</logger>
</springProfile>
<springProfile name="prod">
<logger name="top.xinzhang0618.gaohuo" level="info" additivity="false">
<appender-ref ref="file_out"/>
</logger>
</springProfile>
</configuration>
application.yml
xml
logging:
config: classpath:config/logback-spring.xml