一个logback-spring.xml配置

一个logback-spring.xml配置。

配置如下:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration debug="true" scan="false">
    <contextName>logback-test</contextName>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <!--  工程名,配置中读取  -->
    <springProperty scope="context" name="springAppName" source="spring.application.name"/>
    <!--  日志目录,配置中读取  -->
    <springProperty scope="context" name="loggerFolder" source="logger.folder"/>
    <!--  日志文件名称  -->
    <property name="LOG_FILE" value="${FILE_PATH}/${springAppName}.log"/>
    <!--  日志文件目录  -->
    <property name="FILE_PATH" value="${loggerFolder:-build}/logs/code-test"/>
    <!--  彩色PATTERN  -->
    <property name="PATTERN" value="[%highlight(%-5level)][%green(%d{yyyy-MM-dd HH:mm:ss.SSS})][%boldMagenta(%class{39}.%M\(%line\))][%thread] -%msg%n"/>

    <!--  控制台输出  -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <encoder>
            <pattern>${PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!--  日志文件配置  -->
    <appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 滚动  -->
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}</fileNamePattern>
            <!-- 保存最近10天 -->
            <maxHistory>10</maxHistory>
            <!-- 超过2G删除旧日志 -->
            <totalSizeCap>2GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!-- org.springframework包下的类只打印warn级别上日志 -->
    <logger name="org.springframework" level="warn"/>

    <!-- spring配置文件值:spring.profiles.active=dev -->
    <springProfile name="dev">
        <root level="INFO">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="LOG_FILE"/>
        </root>
    </springProfile>
    <springProfile name="test">
        <root level="INFO">
            <appender-ref ref="LOG_FILE"/>
        </root>
    </springProfile>
    <springProfile name="pro">
        <root level="INFO">
            <appender-ref ref="LOG_FILE"/>
        </root>
    </springProfile>
</configuration>

在微服务中经常会用到链路追踪等,会在日志中添加traceIdspanId。可以继承类ch.qos.logback.classic.pattern.ClassicConverter,然后在logback-spring.xml中添加<conversionRule/>进行处理。

原创 Doflamingo https://www.cnblogs.com/doflamingo
原文地址:https://www.cnblogs.com/doflamingo/p/14325687.html