SpringBoot完整logback-spring.xml文件

在这里插入图片描述

在application.yml配置文件中加上

logback:
  path: ./logs
  zip.path: ./logs/zip
  maxFileSize: 1GB
  maxHistory: 3
  totalSizeCap: 5GB
  level: INFO
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<configuration scan="true" scanPeriod="30 seconds">
    <include
            resource="org/springframework/boot/logging/logback/defaults.xml" />
    <springProperty scope="context" name="springAppName"
                    source="spring.application.name" />
    <springProperty scope="context" name="logback.path"
                    source="logback.path" />
    <springProperty scope="context" name="logback.zip.path"
                    source="logback.zip.path" />
    <springProperty scope="context"
                    name="logback.maxFileSize" source="logback.maxFileSize" />
    <springProperty scope="context"
                    name="logback.totalSizeCap" source="logback.totalSizeCap" />
    <springProperty scope="context"
                    name="logback.maxHistory" source="logback.maxHistory" />
    <springProperty scope="context" name="logback.level"
                    source="logback.level" />

    <!-- 彩色日志 -->
    <!-- 彩色日志依赖的渲染类 -->
    <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="%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} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}" />
    <!-- 控制台日志配置 -->
    <appender name="CONSOLE"
              class="ch.qos.logback.core.ConsoleAppender">
        <!-- 	<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>debug</level>
            </filter> -->
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!-- <encoder> 格式化 <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] %c{36} -
            %m%n</pattern> </encoder> -->
    </appender>

    <!-- 所有日志控制 -->
    <appender name="FILE_CONSOLE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 文件路径 -->
        <file>${logback.path}/console.log</file>
        <!-- 是否追加 默认为true -->
        <append>true</append>
        <!-- 滚动策略 日期+大小 策略 -->
        <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${logback.zip.path}/%d{yyyy-MM-dd}/console/console-%i.zip</fileNamePattern>
            <!-- 单个日志大小 -->
            <maxFileSize>${logback.maxFileSize}</maxFileSize>
            <!-- 日志保存周期 -->
            <maxHistory>${logback.maxHistory}</maxHistory>
            <!-- 总大小 -->
            <totalSizeCap>${logback.totalSizeCap}</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!-- 格式化 -->
        <!-- <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] %c{36} - %m%n</pattern>
            </encoder> -->
    </appender>

    <!-- info级别日志控制 -->
    <appender name="FILE_INFO"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 文件路径 -->
        <file>${logback.path}/info.log</file>
        <!-- 是否追加 默认为true -->
        <append>true</append>
        <!-- 滚动策略 日期+大小 策略 -->
        <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${logback.zip.path}/%d{yyyy-MM-dd}/info/info-%i.zip</fileNamePattern>
            <!-- 单个日志大小 -->
            <maxFileSize>${logback.maxFileSize}</maxFileSize>
            <!-- 日志保存周期 -->
            <maxHistory>${logback.maxHistory}</maxHistory>
            <!-- 总大小 -->
            <totalSizeCap>${logback.totalSizeCap}</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!-- 格式化 -->
        <!-- <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] %c{36} - %m%n</pattern>
            </encoder> -->
        <!-- 级别过滤 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- warn级别日志控制 -->
    <appender name="FILE_WARN"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 文件路径 -->
        <file>${logback.path}/warn.log</file>
        <!-- 是否追加 默认为true -->
        <append>true</append>
        <!-- 滚动策略 日期+大小 策略 -->
        <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${logback.zip.path}/%d{yyyy-MM-dd}/warn/warn-%i.zip</fileNamePattern>
            <!-- 单个日志大小 -->
            <maxFileSize>${logback.maxFileSize}</maxFileSize>
            <!-- 日志保存周期 -->
            <maxHistory>${logback.maxHistory}</maxHistory>
            <!-- 总大小 -->
            <totalSizeCap>${logback.totalSizeCap}</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!-- 格式化 -->
        <!-- <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] %c{36} - %m%n</pattern>
            </encoder> -->
        <!-- 级别过滤 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- ERROR级别日志控制 -->
    <appender name="FILE_ERROR"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 文件路径 -->
        <file>${logback.path}/error.log</file>
        <!-- 是否追加 默认为true -->
        <append>true</append>
        <!-- 滚动策略 日期+大小 策略 -->
        <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${logback.zip.path}/%d{yyyy-MM-dd}/error/error-%i.zip</fileNamePattern>
            <!-- 单个日志大小 -->
            <maxFileSize>${logback.maxFileSize}</maxFileSize>
            <!-- 日志保存周期 -->
            <maxHistory>${logback.maxHistory}</maxHistory>
            <!-- 总大小 -->
            <totalSizeCap>${logback.totalSizeCap}</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!-- 格式化 -->
        <!-- <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] %c{36} - %m%n</pattern>
            </encoder> -->
        <!-- 级别过滤 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- Appender to log to file in a JSON format -->
<!--    <appender name="FILE_LOGSTASH"-->
<!--              class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--        <file>${logback.path}/json.log</file>-->
<!--        <rollingPolicy-->
<!--                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">-->
<!--            <fileNamePattern>${logback.zip.path}/%d{yyyy-MM-dd}/json/json-%i.zip</fileNamePattern>-->
<!--            &lt;!&ndash; 单个日志大小 &ndash;&gt;-->
<!--            <maxFileSize>${logback.maxFileSize}</maxFileSize>-->
<!--            &lt;!&ndash; 日志保存周期 &ndash;&gt;-->
<!--            <maxHistory>${logback.maxHistory}</maxHistory>-->
<!--            &lt;!&ndash; 总大小 &ndash;&gt;-->
<!--            <totalSizeCap>${logback.totalSizeCap}</totalSizeCap>-->
<!--        </rollingPolicy>-->
<!--        <encoder-->
<!--                class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">-->
<!--            <providers>-->
<!--                <timestamp>-->
<!--                    <timeZone>UTC</timeZone>-->
<!--                </timestamp>-->
<!--                <pattern>-->
<!--                    <pattern>-->
<!--                        {-->
<!--                        "severity": "%level",-->
<!--                        "service": "${springAppName:-}",-->
<!--                        "trace": "%X{X-B3-TraceId:-}",-->
<!--                        "span": "%X{X-B3-SpanId:-}",-->
<!--                        "parent": "%X{X-B3-ParentSpanId:-}",-->
<!--                        "exportable":-->
<!--                        "%X{X-Span-Export:-}",-->
<!--                        "pid": "${PID:-}",-->
<!--                        "thread": "%thread",-->
<!--                        "class": "%logger{40}",-->
<!--                        "rest": "%message"-->
<!--                        }-->
<!--                    </pattern>-->
<!--                </pattern>-->
<!--            </providers>-->
<!--        </encoder>-->
<!--    </appender>-->

    <root level="${logback.level}">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE_CONSOLE" />
        <appender-ref ref="FILE_INFO" />
        <appender-ref ref="FILE_WARN" />
        <appender-ref ref="FILE_ERROR" />
<!--        <appender-ref ref="FILE_LOGSTASH" />-->
    </root>

    <!--日志异步到数据库 -->
    <!--<appender name="DB" class="ch.qos.logback.classic.db.DBAppender"> -->
    <!--&lt;!&ndash;日志异步到数据库 &ndash;&gt; -->
    <!--<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource"> -->
    <!--&lt;!&ndash;连接池 &ndash;&gt; -->
    <!--<dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource"> -->
    <!--<driverClass>com.mysql.jdbc.Driver</driverClass> -->
    <!--<url>jdbc:mysql://127.0.0.1:3306/databaseName</url> -->
    <!--<user>root</user> -->
    <!--<password>root</password> -->
    <!--</dataSource> -->
    <!--</connectionSource> -->
    <!--</appender> -->
</configuration>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liu_Shihao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值