<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--scan:配置文件发生改变，将会重新加载，默认值为true， -->
<!--scanPeriod:监测配置文件是否修改的时间间隔，默认单位是毫秒，默认的间隔为1分钟-->
<!--debug:设置为true时，将打印出logback内部日志信息，实时查看logback运行状态。默认值为false。-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">

    <contextName>demo</contextName>

    <!--根路径-->
    <property name="log.path" value="/root/logs/grab/"/>

    <!--时间戳-->
    <timestamp key="timestamp" datePattern="{yyyy-MM-dd HH:mm:ss.SSS}"/>

    <!-- 彩色日志依赖的渲染类 -->
    <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(:){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>INFO</level>
        </filter>
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!--%d{HH: mm:ss.SSS}:日志输出时间
        %thread          :输出日志的进程名字
        %-5level         :日志级别，并且使用5个字符靠左对齐
        %logger{36}      :日志输出者的名字
        %msg             :日志消息
        %n               :平台的换行符
        %L               :日志输出所在行数
    -->

    <!--输出到文件-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/springboot.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/springboot-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <!--每个文件应该至多50MB，保存30天的历史，但最多10GB-->
            <maxFileSize>50MB</maxFileSize>
            <maxHistory>30</maxHistory>
            <totalSizeCap>10GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %L %contextName [%thread] %logger{36} : %msg%n</pattern>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>

    <!--指定类包的日志级别-->
    <logger name="org.springframework.core" level="INFO"/>
    <logger name="org.springframework.beans" level="INFO"/>
    <logger name="org.springframework.context" level="INFO"/>
    <logger name="org.springframework.web" level="INFO"/>
    <logger name="com.picc.grab" level="INFO"/>
</configuration>