Logback配置

 配置文件logback-spring.xml,否则springProperty不生效。

<?xml version="1.0" encoding="UTF-8" ?>
<!--文件命名为logback.xml或logback-spring.xml,建议logback-spring.xml-->

<!--
属性	            可选值	                                              说明            	                                             备注
scan	        true|false	                                          开启扫描,配置变更时logback自动更新配置	                             默认空,即false
scanPeriod	    30 (|milli(second)?|second(e)?|minute|hour|day)s?	  扫描间隔: 数字 + 空格 + 日期单位	                                 默认一分钟,若不指定时间单位,默认毫秒
debug	        true|false	                                          注册OnConsoleStatusListener的简写模式,控制台输出logback内部日志	 默认false
packagingData	true|false	                                          每行日志都输出包信息其所在jar包信息	                                 对性能影响较大,1.1.4及以上版本默认false
-->
<configuration scan="true" scanPeriod="60 seconds" debug="false" packingData="false">
    <!-- 引入默认配置,如%clr、%wEx转换器 -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <!--
    在配置文件中配置:
    #单个日志最大大小
    size_max=500MB
    #日志保存天数
    days_max=365
    -->
    <springProperty name="size_max" source="logging.logback.rollingpolicy.max-file-size" defaultValue="100MB"/>
    <springProperty name="days_max" source="logging.logback.rollingpolicy.max-history" defaultValue="7"/>
    <!--
    变量定义:低版本可以通过<property> 来定义,1.0.7版本后可以通过<variable>等同于<property>,二者一样
    使用: ${变量名}
    指定默认值:以:- 分隔 ${name:-value}
    -->
    <springProfile name="dev">
        <!-- windows 日志存储目录-->
        <property name="logback.logDir" value="./logs"/>
        <!-- configuration to be enabled when the "dev" profiles are active -->
    </springProfile>
    <springProfile name="prod">
        <!-- configuration to be enabled when the "prod" profiles are active -->
        <!-- linux 日志存储目录 -->
        <property name="logback.logDir" value="${user.dir}/logs"/>
    </springProfile>

    <!--  无颜色  -->
    <property name="NOT_COLOR_LOG_PATTERN"
              value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%15.15t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
    <!--  带颜色  -->
    <property name="COLOR_LOG_PATTERN"
              value="%clr(%d{${LOG_DATEFORMAT_PATTERN:-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">
        <!--encoder:指定输出日志格式化和字符集-->
        <encoder>
            <pattern>${COLOR_LOG_PATTERN}</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>


    <!--输出到日志滚动文件-->
    <!--FileAppender将日志事件追加到指定日志文件中-->
    <!--使用RollingFileAppender,继承继承自FileAppender,支持日志分片和历史日志的自动删除-->
    <!--
    RollingFileAppender执行流程:
        1、日志始终追加写入指定的日志文件中,若文件不存在则自动创建
        2、按rollingPolicy配置的策略,当满足策略时,自动将file重命名为rollingPolicy中指定的归档日志文件名,生成历史归档日志,如 /temp/test.2023-04-12.log,并对归档日志进行压缩 和 过期日志删除。
        3、循环 1-2
    -->
    <appender name="infoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <!--日志文件的路径-->
        <File>${logback.logDir}/info.log</File>

        <!--append:true | false,是否以追加的方式写到日志文件,默认true-->
        <append>true</append>

        <!--encoder:指定输出日志格式化和字符集-->
        <encoder>
            <charset>UTF-8</charset>
            <pattern>${NOT_COLOR_LOG_PATTERN}</pattern>
        </encoder>

        <!--prudent:安全模式,性能较差,一般不开启,默认false-->
        <prudent>false</prudent>

        <!--滚动(归档)策略, TimeBasedRollingPolicy:按照时间滚动(归档),超出指定时间范围的日志自动删除;
                            SizeAndTimeBasedRollingPolicy:按时间和文件大小滚动(归档)
        -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中-->
            <FileNamePattern>${logback.logDir}/arch/info/info.%d{yyyy-MM-dd}.%i.log</FileNamePattern>

            <!--日志保留时长(天)-->
            <maxHistory>${days_max}</maxHistory>

            <!--单个日志文件最大容量-->
            <maxFileSize>${size_max}</maxFileSize>

            <!--maxHistory内日志最大容量,到了这个值,就会删除旧的日志-->
            <!--<totalSizeCap>1GB</totalSizeCap>-->

            <!--cleanHistoryOnStart:项目启动时是否清理归档日志,默认false-->
            <cleanHistoryOnStart>false</cleanHistoryOnStart>
        </rollingPolicy>

    </appender>


    <!--将warn、error日志单独存储一份    -->
    <appender name="errorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--过滤器,过滤满足条件或者不满足条件的日志
            LevelFilter:级别过滤器,匹配指定的日志级别
            ThresholdFilter:阈值过滤器,匹配等于或高于指定级别的日志
        -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>WARN</level>
        </filter>
        <!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则
            如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
            的日志改名为今天的日期。即,<File> 的日志都是当天的。
        -->
        <File>${logback.logDir}/error.log</File>
        <!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
            <FileNamePattern>${logback.logDir}/arch/error/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <!-- 单个日志文件最多 100MB -->
            <maxFileSize>${size_max}</maxFileSize>
            <!--只保留最近30天的日志-->
            <maxHistory>${days_max}</maxHistory>
            <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
            <!--<totalSizeCap>1GB</totalSizeCap>-->
        </rollingPolicy>
        <!--日志输出编码格式化-->
        <encoder>
            <charset>UTF-8</charset>
            <pattern>${NOT_COLOR_LOG_PATTERN}</pattern>
        </encoder>
    </appender>


    <!--使用<logger>标签指定{项目包路径}内的日志在控制台输出的级别为warn-->
    <!--配置additivity="false",否则<root>中也配置了<appender-ref ref="console"/>,会重复输出日志。-->
    <!--    <logger name="{项目包路径}" level="warn" additivity="false">-->
    <!--        <appender-ref ref="console"/>-->
    <!--    </logger>-->


    <!--建议在<root>中引用所有<appender>-->
    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="infoLog"/>
        <appender-ref ref="errorLog"/>
    </root>

</configuration>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值