logback.xml模版文件,配置文件

logback.xml模版文件,配置文件

在SpringBoot以及SpringCloud项目中,更推荐使用logback-spring.xml这种命名方式,因为使用logback.xml可能会导致一些application.properties配置一些logging.file等配置失效出现LOG_FILE_IS_UNDEFINED的错误,而且使用logback-spring.xml不能使用logback的高级特性。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <property name="PROJECT" value="userserver"/>
    <property name="ROOT" value="logs/${PROJECT}/"/>
    <property name="FILESIZE" value="50MB"/>
    <property name="MAXHISTORY" value="20"/>
    <property name="TOTALSIZECAP" value="1GB"/>

    <!-- 彩色日志依赖的渲染类 -->
    <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} %clr(: %L){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <!-- 日志文件打印格式,普通版 -->
    <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>

    <!-- 控制台打印 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="utf-8">
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!--  注意1:鉴于logback比log4j性能更好,配置更方便(log4j多年未更新了),在项目中必须使用LoggerFactory.getLogger()进行日志记录,禁止使用Logger.getLogger()记录日志,否则会导致日志丢失  -->
    <!--  注意2:我们准备了三套日志收集模式,以应对不同的变化:
         (1)按天收集模式:日志按照日期进行收集,确定每日大约的日志量以后可以采取这种模式;
         (2)固定窗口模式:固定要收集的日志文件大小,而不考虑收集日志的时间,这样可以防止请求波动导致的日志猛增,更加保守一点,缺点是文件名不能包含日期以及对于不频繁服务收集的过于久远的日志;
         (3)时间限定+日志大小限定模式:这样的好处是可以兼顾(1)与(2)的收集特点,如果超过固定大小或者达到指定日期就触发日志滚动。-->

    <!-- 按天收集模式 -->
<!--    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--        <file>${ROOT}/myapp.log</file>-->
<!--        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
<!--            &lt;!&ndash; daily rollover &ndash;&gt;-->
<!--            <fileNamePattern>${ROOT}/%d{yyyy-MM-dd}.log</fileNamePattern>-->

<!--            &lt;!&ndash; keep 20 days' worth of history capped at 1GB total size &ndash;&gt;-->
<!--            <maxHistory>${MAXHISTORY}</maxHistory>-->
<!--            <totalSizeCap>${TOTALSIZECAP}</totalSizeCap>-->

<!--        </rollingPolicy>-->

<!--        <encoder>-->
<!--            <pattern>${FILE_LOG_PATTERN}</pattern>-->
<!--        </encoder>-->
<!--    </appender>-->



    <!--按照固定窗口模式生成日志文件-->
<!--        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--            <file>${ROOT}/myapp.log</file>-->

<!--            <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">-->
<!--                <fileNamePattern>${ROOT}/myapp-%i.log</fileNamePattern>-->
<!--                <minIndex>1</minIndex>-->
<!--                <maxIndex>${MAXHISTORY}</maxIndex>-->
<!--            </rollingPolicy>-->

<!--            <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
<!--                <MaxFileSize>${FILESIZE}</MaxFileSize>-->
<!--            </triggeringPolicy>-->

<!--            <encoder charset="utf-8">-->
<!--                <pattern>${FILE_LOG_PATTERN}</pattern>-->
<!--            </encoder>-->
<!--        </appender>-->



    <!-- 时间限定+日志大小限定,双重限定,更加灵活 -->
    <!-- 每个文件最多50M,最多保存20天的历史记录,最大不能超过2GB -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${ROOT}/myapp.log</file>

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${ROOT}/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- each file should be at most 50MB, keep 20 days worth of history, but at most 1GB -->
            <maxFileSize>${FILESIZE}</maxFileSize>
            <maxHistory>${MAXHISTORY}</maxHistory>
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>

        <encoder charset="utf-8">
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>


    <!-- SQL相关日志输出-->
    <logger name="org.apache.ibatis" level="INFO" additivity="false"/>
    <logger name="org.mybatis.spring" level="INFO" additivity="false"/>

    <!-- Logger 根目录 -->
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE"/>
    </root>
</configuration>

关于logback的普及我还有一些文章,你可以点击查看:SpringBoot日志概述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值