logback在初始化時,按照如下順序來讀取配置文件java
logback.configurationFile
屬性,就用該屬性指定的配置文件。如java -Dlogback.configurationFile=/path/to/mylogback.xml Test
,這樣執行Test類的時候就會加載/path/to/mylogback.xml
配置。<?xml version="1.0" encoding="UTF-8" ?> <configuration> <!--定義變量,能夠經過${name}使用--> <property name="path" value="log" /> <!--ConsoleAppender 用於配置日誌的輸出,ConsoleAppender是控制檯--> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!-- 配置日誌格式,這是一個比較通用的格式 --> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern> <charset>utf-8</charset> </encoder> </appender> <!-- 輸出終端是滾動文件 --> <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 基於時間滾動,就是天天的日誌輸出到不一樣的文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 輸出日誌的目錄文件名,window中默認分區爲當前程序的硬盤分區,%d{yyyy-MM-dd}是當前日期 --> <fileNamePattern>${path}/info/info-%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 最大保存2個文件,超出的歷史文件會被刪除 --> <maxHistory>2</maxHistory> </rollingPolicy> <!-- 按照日誌級別進行過濾 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 只收集WARN級別的日誌,其餘高級別和低級別的日誌都放棄 --> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <!-- 配置日誌格式,這是一個比較通用的格式 --> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern> <charset>utf-8</charset> </encoder> </appender> <!-- 輸出終端是滾動文件 --> <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 基於時間滾動,就是天天的日誌輸出到不一樣的文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 輸出日誌的目錄文件名,window中默認分區爲當前程序的硬盤分區,%d{yyyy-MM-dd}是當前日期 --> <fileNamePattern>${path}/warn/warn-%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 最大保存2個文件,超出的歷史文件會被刪除 --> <maxHistory>2</maxHistory> </rollingPolicy> <!-- 按照日誌級別進行過濾 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 只收集WARN級別的日誌,其餘高級別和低級別的日誌都放棄 --> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <!-- 配置日誌格式,這是一個比較通用的格式 --> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern> <charset>utf-8</charset> </encoder> </appender> <root level="INFO"> <appender-ref ref="STDOUT" /> <appender-ref ref="INFO" /> <appender-ref ref="WARN" /> </root> </configuration>