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

<configuration scan="true" scanPeriod="60 seconds" debug="false">

    <contextName>logback</contextName>
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="log.path" value="/opt/gb28181/gb28181-docking-platform-mocking/logs" />

    <!--输出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
        <!--            <level>INFO</level>-->
        <!--        </filter>-->
        <!--        <withJansi>true</withJansi>-->
        <encoder>
            <!--<pattern>%d %p (%file:%line\)- %m%n</pattern>-->
            <!--格式化输出：%d:表示日期    %thread:表示线程名     %-5level:级别从左显示5个字符宽度  %msg:日志消息    %n:是换行符-->
            <pattern>%red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %yellow(at %class.%method) (%file:%line\) - %cyan(%msg%n)</pattern>
            <!--<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %magenta(%-5level) %green([%-50.50class]) >>> %cyan(%msg) %n</pattern>-->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- &lt;!&ndash;输出到文件&ndash;&gt;-->
    <!-- 按照每天生成日志文件 DEBUG以上级别的日志,仅用于测试环境,正式环境为info级别以上的日志-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <!-- 文件路径 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--历史日志文件输出的文件名 -->
            <FileNamePattern>${log.path}/log-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <!--日志文件保留天数 -->
            <MaxHistory>30</MaxHistory>
            <maxFileSize>500MB</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出：%d表示日期，%thread表示线程名，%-5level：级别从左显示5个字符宽度%msg：日志消息，%n是换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <!--与ThresholdFilter的区别,允许onmatch-->
            <!--设置日志级别 接收info级别的日志-->
            <level>DEBUG</level>
        </filter>
    </appender>

    <!--    如果appender里没有限定日志级别，那么root可以统一设置，如果没有配置那么控制台和文件不会输出任何日志，这里root的level不做限制-->
    <root level="INFO">
        <!--        允许控制台输出-->
        <!-- <appender-ref ref="console" /> -->
        <!--&lt;!&ndash;        允许文件输出&ndash;&gt;-->
        <appender-ref ref="file" />
    </root>

    <logger name="cn.skcks.docking.gb28181.core.sip.logger" level="INFO" />
    <logger name="cn.skcks.docking.gb28181" level="INFO" />
</configuration>
