springboot 配置logback日志
一个好的日志对于我们分析问题带来很好收益,在网上看了很多springboot的logback配置,现在规整下便于自己后续使用。觉得有用的可以收藏。
Spring Boot 官方推荐优先使用带有 -spring 的文件名作为你的日志配置(如使用 logback-spring.xml ,而不是 logback.xml ),命名为 logback-spring.xml 的日志配置文件。
因此我们只需要在 resources 目录下,就能自动被 spring boot 加载(注意名字是logback-spring.xml,不要写为spring-logback.xml)
logback-spring.xml内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!--项目名称-->
<property name="LOG_FILE" value="admin"/>
<!--文件输出日志路径-->
<property name="PATH" value="logs/admin/"/>
<!--最新日志文件名称-->
<property name="LOG_FILE_NAME" value="app"/>
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<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:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan}[lineNo:%line] %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- 用于文件输出-->
<property name="COM_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} [lineNo:%line] - %msg%n"></property>
<!--控制台日志输出设置-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--文件日志输出设置-->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${PATH}/${LOG_FILE_NAME}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${PATH}/${LOG_FILE}-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!--日志大小-->
<maxFileSize>10MB</maxFileSize>
<!--保存天数-->
<maxHistory>30</maxHistory>
<!--日志总大小-->
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<!--com.**.mapper为你dao层的包路径写成自己的-->
<!-- <logger name="com.**.mapper" level="DEBUG"/>-->
<encoder>
<pattern>${COM_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root>
</configuration>
配置好后再项目中直接使用,例如:
1、导入包
2、使用
结果:
目前配置能满足现有项目的基本要求,后续发现好用的其他配置再往里面添加。