<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<springProperty scope="context" name="LOG_HOME" source="logging.file.path" defaultValue="../logs"/>
<springProperty scope="context" name="LOG_NAME" source="spring.application.name"/>
<springProperty scope="context" name="spring.profiles.active" source="spring.profiles.active"/>
<springProperty scope="context" name="log.level.root" source="logging.level.root" defaultValue="INFO"/>
<springProperty name="HIGH_FREQUENCY_EXPRESSION" source="logging.high-frequency-expression" defaultValue="com.pkgPath(需要修改为自己的项目包名)" />
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<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"/>
<!-- 彩色日志格式 -->
<springProperty scope="context" name="common-pattern-color" source="logging.common-pattern-color"
defaultValue="[${LOG_NAME}:${server.port}-%clr(${PID}){magenta}-%X{tid}-%X{userid}] %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint}%clr([%5p]){blue} %clr([%X{traceId}]){yellow} %clr([%t:%r]){orange} %clr([%logger{50}.%X{M}:%X{L}]){cyan} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<springProperty scope="context" name="common-pattern" source="logging.common-pattern"
defaultValue="[${LOG_NAME}:${server.port}-${PID}-%X{tid}-%X{userid}] %d{yyyy-MM-dd HH:mm:ss.SSS}[%5p] [%X{traceId}] [%t:%r] [%logger{50}.%X{M}:%X{L}] %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<jmxConfigurator/>
<!-- 控制台实时输出,采用高亮语法,用于开发环境 -->
<appender name="CONSOLE_APPENDER" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!-- <level>${log.level.console}</level>-->
</filter>
<!-- 日志的格式化 -->
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>${common-pattern-color}</Pattern>
</layout>
</encoder>
</appender>
<!-- 控制台异步实时输出 -->
<appender name="ASYNC_CONSOLE_APPENDER" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>256</queueSize>
<!-- 新增这行为了打印栈堆信息 -->
<includeCallerData>true</includeCallerData>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="CONSOLE_APPENDER"/>
</appender>
<!-- 整个项目的所有日志, 包括第三方包 -->
<appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/${LOG_NAME}/log.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 每天一归档 -->
<fileNamePattern>${LOG_HOME}/${LOG_NAME}/log/log-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
<!--单文件最大限制-->
<maxFileSize>128MB</maxFileSize>
<!--保留时间,单位:天-->
<maxHistory>3</maxHistory>
<!-- 日志总大小 -->
<totalSizeCap>10GB</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<!-- 日志的格式化 -->
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>${common-pattern}</Pattern>
</layout>
</encoder>
</appender>
<appender name="ASYNC_ROOT_APPENDER" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>256</queueSize>
<appender-ref ref="ROOT_APPENDER"/>
</appender>
<!-- 异常日志,不能使用异步,必须确保打印 -->
<appender name="ERROR_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/${LOG_NAME}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${LOG_NAME}/error/error-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
<!--单文件最大限制-->
<maxFileSize>128MB</maxFileSize>
<!--保留时间,单位:天-->
<maxHistory>60</maxHistory>
<!-- 日志总大小 -->
<totalSizeCap>10GB</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<!-- 日志的格式化 -->
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>${common-pattern}</Pattern>
</layout>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<!--普通频率-->
<appender name="INFO_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/${LOG_NAME}/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${LOG_NAME}/info/info-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
<!--单文件最大限制-->
<maxFileSize>128MB</maxFileSize>
<!--保留时间,单位:天-->
<maxHistory>7</maxHistory>
<!-- 日志总大小 -->
<totalSizeCap>10GB</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<!-- 日志的格式化 -->
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>${common-pattern}</Pattern>
</layout>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<!-- 全量记录,建议生成环境使用 -->
<root level="${log.level.root}">
<!--控制台-->
<appender-ref ref="ASYNC_CONSOLE_APPENDER"/>
<!--全量日志,异步打印-->
<appender-ref ref="ASYNC_ROOT_APPENDER"/>
<!--异常日志,不异步-->
<appender-ref ref="ERROR_APPENDER" />
<!--低频日志,不异步打印-->
<appender-ref ref="INFO_APPENDER" />
</root>
</configuration>
logback-spring.xml配置文件(最佳实践)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 参考: https://blog.csdn.net/qq_41413094/article/details/929...
- logback文件基本信息 SpringBoot工程自带logback和slf4j的依赖,所以重点放在编写配置文件...
- 1、SpringBoot日志框架 市面上的日志框架:JUL、JCL、Jboss-logging、logback、l...
- 日志配置logback-spring.xml[https://www.cnblogs.com/54hsh/p/12...