一個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/>進行處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM