pom.xml
<!-- spring logback 日誌 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.logback-extensions</groupId>
<artifactId>logback-ext-spring</artifactId>
<version>0.1.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.12</version>
</dependency>
logback.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- 從高到地低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL -->
<!-- 日誌輸出規則 根據當前ROOT 級別,日誌輸出時,級別高於root默認的級別時 會輸出 -->
<!-- 以下 每個配置的 filter 是過濾掉輸出文件裏面,會出現高級別文件,依然出現低級別的日誌信息,通過filter 過濾只記錄本級別的日誌-->
<!-- 定義日誌文件 輸入位置 -->
<property name="logPath" value="/home/logs/tjg_wechat_web"/>
<!-- 日誌最大的歷史 30天,這個參數要看你基於哪一種滾動策略【基於天,單位爲天,月同理】本文件設置的多事基於天滾動策略 -->
<property name="maxHistory" value="30"/>
<!-- 日誌輸出格式【控制檯】 [%p][%c][%M][%L] -->
<property name="logPatternConsoleLog" value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%p) | %boldYellow(%c) | %M:%boldGreen(%L) | %m%n"/>
<!-- 日誌輸出格式【日誌文件】 -->
<property name="logPattern" value="%date{yyyy-MM-dd HH:mm:ss} | %p | %c | %M:%L | %m%n"/>
<!-- 日誌輸出編碼格式 -->
<property name="logCharset" value="UTF-8"/>
<!--配置控制檯的輸出-->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${logPatternConsoleLog}</pattern>
<charset>${logCharset}</charset>
</encoder>
</appender>
<!--配置文件輸出:error-->
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 過濾器,只記錄ERROR級別的日誌 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch> <!--如果是匹配,就接受這條規則【整個appender塊】,FilterReply類(DENY,NEUTRAL,ACCEPT)-->
<onMismatch>DENY</onMismatch> <!--如果沒有匹配,就禁止-->
<!--<onMismatch>NEUTRAL</onMismatch>--> <!--如果沒有匹配,就忽略這條規則,看下一個【appender塊規則是否接受】-->
</filter>
<encoder>
<pattern>${logPattern}</pattern>
<charset>${logCharset}</charset>
</encoder>
<!--滾動策略:每天一個日誌文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--路徑-->
<fileNamePattern>${logPath}/%d{yyyy-MM-dd}/error.%d.log</fileNamePattern>
<!-- 可選節點,控制保留的歸檔文件的最大數量,超出數量就刪除舊文件假設設置每個月滾動,且<maxHistory>是30,
則只保存最近30天的文件,刪除之前的舊文件。注意,刪除舊文件是,那些爲了歸檔而創建的目錄也會被刪除-->
<maxHistory>${maxHistory}</maxHistory>
</rollingPolicy>
</appender>
<!--配置文件輸出:info-->
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder>
<pattern>${logPattern}</pattern>
<charset>${logCharset}</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logPath}/%d{yyyy-MM-dd}/info.%d.log</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
</rollingPolicy>
</appender>
<!--設置日誌級別-->
<root level="debug">
<appender-ref ref="consoleLog"/> <!--控制檯-->
<appender-ref ref="fileErrorLog"/> <!--error文件-->
<appender-ref ref="fileInfoLog"/> <!--info文件-->
</root>
</configuration>