spring boot logback

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="1 seconds">
 
    <!--    如果想从spring property中加载属性,需要将配置文件名称改为logback-spring.xml-->
    <!--    <springProperty scope="context" name="LOG_DIR" source="logback.path"/>-->
    <!--    resource在classpath中查找-->
    <property resource="logback.properties"/>
    <!--   file在项目根目录开始查找-->
    <!--    <property file="src/main/resources/logback.properties"/>-->
 
    <property name="FILE_LOG_PATTERN"
              value="%d [%t] %-5level [%F : %L] - %msg%n"/>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are  by default assigned the type
            ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
        <encoder>
            <Pattern>${FILE_LOG_PATTERN}</Pattern>
            <!-- 是否将表达式打印在日志头部,默认false-->
            <outputPatternAsHeader>true</outputPatternAsHeader>
            <!-- 控制台也要使用UTF-8,不要使用GBK,否则会中文乱码 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>
 
    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 是否支持多个JVM写入同一个文件,默认false -->
        <!--        <prudent>false</prudent>-->
        <!-- 是否追加已有文件,默认true-->
        <!--        <append>true</append>-->
        <!-- 指定文件-->
        <file>${logback.path}/${logback.app}.log</file>
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
            <!-- 是否将表达式打印在日志头部,默认false-->
            <outputPatternAsHeader>true</outputPatternAsHeader>
            <!-- 控制台也要使用UTF-8,不要使用GBK,否则会中文乱码 -->
            <charset>UTF-8</charset>
        </encoder>
 
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--如果日志文件名以 .gz 或者 .zip结尾,TimeBasedRollingPolicy支持在midnight(凌晨0点)自动压缩-->
            <!--当fileNamePattern中定义了多个%d时,会选择第一个不是aux的作为翻滚策略-->
            <fileNamePattern>
                <!--按月划分目录,按天拆分日志-->
                ${logback.path}/%d{yyyy/MM,aux}/${logback.app}.%d{yyyy-MM-dd}.%i.zip
                <!--按天划分目录,按分钟拆分日志-->
                <!--                ${logback.path}/%d{yyyy/MM/dd,aux}/${logback.app}.%d{yyyy-MM-dd_HH-mm}.%i.zip-->
            </fileNamePattern>
 
            <!--  注意,maxHistory代表的是最大存档文件的数量,不是存档期限。达到阈值时,删除最老的日志。
            如果是按月份归档日志,maxHistory=6,表示6个月以前的存档文件会被删除。
                可以配合fileNamePattern来达到 根据时间存档的效果.
                -->
            <maxHistory>60</maxHistory>
            <!--SizeAndTimeBasedRollingPolicy特有,单个文件最大容量,达到阈值时根据%i来分割日志,从0开始。-->
            <maxFileSize>200mb</maxFileSize>
            <!--日志总量,达到阈值时,删除最老的日志-->
            <totalSizeCap>3GB</totalSizeCap>
            <!-- 是否在启动时执行存档删除,默认false。存档文件删除通常在翻滚期间执行。
             但是,有些应用程序的寿命可能不够长,无法触发翻滚。
             因此,对于这种生命周期很短的应用程序,归档删除可能永远没有机会执行。
             通过将cleanHistoryOnStart设置为true,将在appender启动时执行存档删除。-->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
 
        <!-- triggeringPolicy决定是否触发rollingPolicy-->
        <!--      <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                  <maxFileSize>1kb</maxFileSize>
              </triggeringPolicy>-->
    </appender>
    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 是否支持多个JVM写入同一个文件,默认false -->
        <!--        <prudent>false</prudent>-->
        <!-- 是否追加已有文件,默认true-->
        <!--        <append>true</append>-->
        <!-- 指定文件-->
        <file>${logback.path}/${logback.app}-error.log</file>
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
            <!-- 是否将表达式打印在日志头部,默认false-->
            <outputPatternAsHeader>true</outputPatternAsHeader>
            <!-- 控制台也要使用UTF-8,不要使用GBK,否则会中文乱码 -->
            <charset>UTF-8</charset>
        </encoder>
 
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--如果日志文件名以 .gz 或者 .zip结尾,TimeBasedRollingPolicy支持在midnight(凌晨0点)自动压缩-->
            <!--当fileNamePattern中定义了多个%d时,会选择第一个不是aux的作为翻滚策略-->
            <fileNamePattern>
                <!--按月划分目录,按天拆分日志-->
                ${logback.path}/%d{yyyy/MM,aux}/${logback.app}-error.%d{yyyy-MM-dd}.%i.zip
                <!--按天划分目录,按分钟拆分日志-->
                <!--                ${logback.path}/%d{yyyy/MM/dd,aux}/${logback.app}-error.%d{yyyy-MM-dd_HH-mm}.%i.zip-->
            </fileNamePattern>
 
            <!--  注意,maxHistory代表的是最大存档文件的数量,不是存档期限。达到阈值时,删除最老的日志。
            如果是按月份归档日志,maxHistory=6,表示6个月以前的存档文件会被删除。
                可以配合fileNamePattern来达到 根据时间存档的效果.
                -->
            <maxHistory>60</maxHistory>
            <!--SizeAndTimeBasedRollingPolicy特有,单个文件最大容量,达到阈值时根据%i来分割日志,从0开始。-->
            <maxFileSize>200mb</maxFileSize>
            <!--日志总量,达到阈值时,删除最老的日志-->
            <totalSizeCap>3GB</totalSizeCap>
            <!-- 是否在启动时执行存档删除,默认false。存档文件删除通常在翻滚期间执行。
             但是,有些应用程序的寿命可能不够长,无法触发翻滚。
             因此,对于这种生命周期很短的应用程序,归档删除可能永远没有机会执行。
             通过将cleanHistoryOnStart设置为true,将在appender启动时执行存档删除。-->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
 
        <!-- triggeringPolicy决定是否触发rollingPolicy-->
        <!--      <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                  <maxFileSize>1kb</maxFileSize>
              </triggeringPolicy>-->
 
        <!-- 级别过滤器,也可以自定义过滤器,实现ch.qos.logback.core.filter.Filter-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!--    TRACE < DEBUG < INFO <  WARN < ERROR < ALL /OFF-->
    <root level="info">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="INFO"/>
        <appender-ref ref="ERROR"/>
    </root>
</configuration>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值