<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--獲取配置中的參數信息-->
<property scope="context" name="logHome" value="C:\\cjy-data-process"/>
<property scope="context" name="logname" value="data-process.log"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<target>System.out</target>
<encoder>
<!-- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>-->
<pattern> %date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %boldYellow(%thread) | %msg | %boldGreen(%logger) %n </pattern>
</encoder>
</appender>
<appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--如果只是想要 Error 級別的日志,那么需要過濾一下,默認是 info 級別的,ThresholdFilter-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<!--日志名稱,如果沒有File 屬性,那么只會使用FileNamePattern的文件路徑規則 如果同時有<File>和<FileNamePattern>,那么當天日志是<File>,明天會自動把今天的日志改名為今天的日期。即,<File> 的日志都是當天的。 -->
<File>${logHome}/logs/${logname}-info.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件路徑,定義了日志的切分方式——把每一天的日志歸檔到一個文件中,以防止日志填滿整個磁盤空間-->
<fileNamePattern>${logHome}/logs/${logname}-info-%d{yyyy-MM-dd}.log</fileNamePattern>
<!--只保留最近30天的日志-->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>%date{yyyy-MM-dd HH:mm:ss} | %-5level | %thread | %msg | %logger %n</pattern>
</encoder>
</appender>
<appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--如果只是想要 Error 級別的日志,那么需要過濾一下,默認是 info 級別的,ThresholdFilter-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>Error</level>
</filter>
<!--日志名稱,如果沒有File 屬性,那么只會使用FileNamePattern的文件路徑規則 如果同時有<File>和<FileNamePattern>,那么當天日志是<File>,明天會自動把今天的日志改名為今天的日期。即,<File> 的日志都是當天的。 -->
<File>${logHome}/logs/${logname}-error.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件路徑,定義了日志的切分方式——把每一天的日志歸檔到一個文件中,以防止日志填滿整個磁盤空間-->
<fileNamePattern>${logHome}/logs/${logname}-error-%d{yyyy-MM-dd}.log</fileNamePattern>
<!--只保留最近30天的日志-->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>%date{yyyy-MM-dd HH:mm:ss} | %-5level | %thread | %msg | %logger %n%n%n</pattern>
</encoder>
</appender>
<!-- 異步輸出 -->
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丟失日志.默認的,如果隊列的80%已滿,則會丟棄TRACT、DEBUG、INFO級別的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默認的隊列的深度,該值會影響性能.默認值為256 -->
<queueSize>256</queueSize>
<!-- 添加附加的appender,最多只能添加一個 -->
<appender-ref ref="FILE_ERROR"/>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE_ERROR"/>
<appender-ref ref="FILE_INFO"/>
<appender-ref ref="ASYNC"/>
<!--<appender-ref ref="EMAIL"/>-->
</root>
</configuration>