springboot日志配置示例
介绍
- springboot默认使用的是logback日志框架,有两种命名方式
- logback.xml
- logback-spring.xml
区别就是logback-spring.xml由Spring加载,这意味着它可以使用Spring的环境变量、属性占位符以及一些Spring Boot特有的功能。
示例说明
-
配置文件说明
- 配置项
- APP_NAME不指定默认从配置文件读取
- logger标签的name属性需要你指定你的mapper所在的包名,否则不会打印sql语句
- 一共配置了四个输出方式
- 控制台:没什么好说的就是输出到控制台
- info.log:和控制台输出的内容一样,只不过是输出到文件
- error.log:只记录error级别的日志
- sql.log:只记录sql语句以及参数信息
- 日志滚动方式
- 到达00:00:00自动切割,并且新建一个文件夹存储
- 一个日志最大10MB
- 最长保留一个月(sql日志只保留两天)
- 超过10G自动删除(sql日志超过2G自动删除)
-
知识点
1 2 3 4 5 6
|
mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
|
示例
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <contextName>${APP_NAME:-logback}</contextName>
<property name="LOG_HOME" value="${LOG_HOME:-${user.dir}/logs}" /> <springProperty scope="context" name="APP_NAME" source="spring.application.name"/> <property name="LOG_LEVEL_PATTERN" value="${LOG_LEVEL_PATTERN:-%5p}" /> <property name="LOG_PATTERN" value="${LOG_PATTERN:-%-20(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread]) %-5level %logger{80} -%msg%n}" />
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN}) %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n}" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>${CONSOLE_LOG_PATTERN}</pattern> </encoder> </appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/${APP_NAME}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/bak/%d{yyyy-MM-dd}/${APP_NAME}-%i.log</fileNamePattern> <maxHistory>30</maxHistory> <maxFileSize>20MB</maxFileSize> <totalSizeCap>10GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender>
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/${APP_NAME}-error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/bak/%d{yyyy-MM-dd}/${APP_NAME}-error-%i.log</fileNamePattern> <maxHistory>30</maxHistory> <maxFileSize>20MB</maxFileSize> <totalSizeCap>10GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>${LOG_PATTERN}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>error</level> </filter> </appender>
<appender name="sql_log" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/${APP_NAME}-sql.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/bak/%d{yyyy-MM-dd}/${APP_NAME}-sql-%i.log</fileNamePattern> <maxHistory>2</maxHistory> <maxFileSize>10MB</maxFileSize> <totalSizeCap>10GB</totalSizeCap> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>${LOG_PATTERN}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>DEBUG</level> </filter> </appender>
<logger name="mapper随在包名" level="DEBUG" additivity="false"> <appender-ref ref="STDOUT"/> <appender-ref ref="mysql_log" /> </logger> <root level="info"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> <appender-ref ref="ERROR_FILE" /> </root>
</configuration>
|