常用logback.xml配置詳解
阿新 • • 發佈:2019-09-10
選擇logback的理由
==logback==與==log4j==的簡單對比一下:
1.首先,對於同樣的程式碼路徑,==logback==使用起來更快。
2.==logback==原生實現了log4j的api,而log4j中間還需要一個轉換層。
3.有更豐富的文件,支援xml的和group的配置。
4.對配置檔案的在專案啟動中,可以熱載入。
5.可以自動對日誌進行歸檔,可以對日誌進行歸檔,可以自動壓縮日誌成為歸檔檔案。
6.支援更多的過濾器和引數化輸出。
操作
1.引入依賴xml
<!-- logback --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.1.8</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.8</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.22</version> </dependency>
2.建立logback.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds"> <!--日誌輸入到控制檯--> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern> </encoder> </appender> <!--<appender name="permission" class="ch.qos.logback.core.rolling.RollingFileAppender">--> <!--<file>${catalina.home}/logs/permission.log</file>--> <!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">--> <!--<FileNamePattern>${catalina.home}/logs/permission.%d{yyyy-MM-dd}.log.gz</FileNamePattern>--> <!--</rollingPolicy>--> <!--<layout class="ch.qos.logback.classic.PatternLayout">--> <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>--> <!--</layout>--> <!--</appender>--> <!----> <!--<logger name="xxx" level="INFO">--> <!--<appender-ref ref="permission"/>--> <!--</logger>--> <!-- TRACE < DEBUG < INFO < WARN < ERROR --> <root level="INFO"> <appender-ref ref="STDOUT" /> </root> </configuration>
注:
由configuration
裡面定義引數:scan、scanPeriod等
1.scan="true"
配置檔案發生改變時會重新載入。
2.scanPeriod
設定時間間隔,當為scan="true"
時才會生效 。
例如:scanPeriod="60 seconds"
3.appender:日誌輸出形式,可以定義多個 。
STDOURT :標準化輸出 class="ch.qos.logback.core.ConsoleAppender"
:控制檯輸出
標準日誌格式輸出:
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern> </encoder> </appender>
解釋:
%d{yyyy-MM-dd HH:mm:ss.SSS}:時間
[%thread]:程序
%-5level:級別從做顯示5個寬度
%logger:日誌名稱
%msg%:具體的msg
自定義名字和路徑記錄日誌:
<appender name="permission" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.home}/logs/permission.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${catalina.home}/logs/permission.%d{yyyy-MM-dd}.log.gz</FileNamePattern>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</layout>
</appender>
解釋:
<file>${catalina.home}/logs/permission.log</file>
代表路徑在Catalina.home的資料夾下面的logs資料夾下面打印出日誌permission.log的日誌。
2.其他的與上面相似
4.logger:日誌,可以是類名,也可以是其他、名稱,最後返回appender輸出。
5.root:只能有一個,日誌的級別:從小到大的排序:TRACE < DEBUG < INFO < WARN < ERROR
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
與appender聯絡起來