slf4j+logback配置及詳解
文字主要介紹一下slf4j+logback在java工程中的配置,面向的讀者是已經對slf4j+logback有一定了解的同學,不瞭解的同學,請看文章末尾的相關連結。以後會寫一篇介紹slf4j框架的文章,其中會說明logback與之的關係。下面我們們進入正題。
一、基於maven的slf4j+logback pom.xml配置
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.10</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.2</version>
</dependency>
二、在classpath目錄下新建logback.xml配置檔案
<?xml version="1.0" encoding="UTF-8"?>
<!--
scan:當此屬性設定為true時,配置檔案如果發生改變,將會被重新載入,預設值為true。
scanPeriod:設定監測配置檔案是否有修改的時間間隔,如果沒有給出時間單位,預設單位是毫秒當scan為true時,此屬性生效。預設的時間間隔為1分鐘。
debug:當此屬性設定為true時,將列印出logback內部日誌資訊,實時檢視logback執行狀態。預設值為false。
-->
<configuration scan="false" scanPeriod="60 seconds" debug="false">
<!-- 定義日誌的根目錄 -->
<property name="LOG_HOME" value="/app/log" />
<!-- 定義日誌檔名稱 -->
<property name="appName" value="netty"></property>
<!-- ch.qos.logback.core.ConsoleAppender 表示控制檯輸出 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<Encoding>UTF-8</Encoding>
<!--
日誌輸出格式:%d表示日期時間,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度
%logger{50} 表示logger名字最長50個字元,否則按照句點分割。 %msg:日誌訊息,%n是換行符
-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</layout>
</appender>
<!-- 滾動記錄檔案,先將日誌記錄到指定檔案,當符合某個條件時,將日誌記錄到其他檔案 -->
<appender name="appLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<Encoding>UTF-8</Encoding>
<!-- 指定日誌檔案的名稱 -->
<file>${LOG_HOME}/${appName}.log</file>
<!--
當發生滾動時,決定 RollingFileAppender 的行為,涉及檔案移動和重新命名
TimeBasedRollingPolicy: 最常用的滾動策略,它根據時間來制定滾動策略,既負責滾動也負責出發滾動。
-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--
滾動時產生的檔案的存放位置及檔名稱 %d{yyyy-MM-dd}:按天進行日誌滾動
%i:當檔案大小超過maxFileSize時,按照i進行檔案滾動
-->
<fileNamePattern>${LOG_HOME}/${appName}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<!--
可選節點,控制保留的歸檔檔案的最大數量,超出數量就刪除舊檔案。假設設定每天滾動,
且maxHistory是365,則只儲存最近365天的檔案,刪除之前的舊檔案。注意,刪除舊檔案是,
那些為了歸檔而建立的目錄也會被刪除。
-->
<MaxHistory>365</MaxHistory>
<!--
當日志檔案超過maxFileSize指定的大小是,根據上面提到的%i進行日誌檔案滾動 注意此處配置SizeBasedTriggeringPolicy是無法實現按檔案大小進行滾動的,必須配置timeBasedFileNamingAndTriggeringPolicy
-->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!--
日誌輸出格式:%d表示日期時間,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度 %logger{50} 表示logger名字最長50個字元,否則按照句點分割。 %msg:日誌訊息,%n是換行符
-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern>
</layout>
</appender>
<!--
logger主要用於存放日誌物件,也可以定義日誌型別、級別
name:表示匹配的logger型別字首,也就是包的前半部分
level:要記錄的日誌級別,包括 TRACE < DEBUG < INFO < WARN < ERROR
additivity:作用在於children-logger是否使用 rootLogger配置的appender進行輸出,false:表示只用當前logger的appender-ref,true:表示當前logger的appender-ref和rootLogger的appender-ref都有效
-->
<!-- hibernate logger -->
<logger name="org.hibernate" level="error" />
<!-- Spring framework logger -->
<logger name="org.springframework" level="error" additivity="false"></logger>
<logger name="com.creditease" level="info" additivity="true">
<appender-ref ref="appLogAppender" />
</logger>
<!--
root與logger是父子關係,沒有特別定義則預設為root,任何一個類只會和一個logger對應,
要麼是定義的logger,要麼是root,判斷的關鍵在於找到這個logger,然後判斷這個logger的appender和level。
-->
<root level="info">
<appender-ref ref="stdout" />
<appender-ref ref="appLogAppender" />
</root>
</configuration>
相關文章
- Nginx安裝及配置詳解Nginx
- YUM倉庫配置及命令詳解
- Springcloud及Git線上配置詳解SpringGCCloudGit
- RHEL及CentOS網路配置詳解CentOS
- 負載均衡之Haproxy配置詳解(及httpd配置)負載httpd
- tomcat架構分析及配置詳解Tomcat架構
- Docker的安裝配置及使用詳解Docker
- rman catalog的配置及詳解例項
- 應用程式池屬性詳解及配置
- IIS應用程式池配置詳解及優化優化
- TCP標誌位詳解及tcp攔截配置TCP
- 跨域共享CORS詳解及Gin配置跨域跨域CORS
- XtraBackup工具詳解 Part 4 XtraBackup許可權及配置
- Spring AOP及事務配置三種模式詳解Spring模式
- php-fpm啟動引數及重要配置詳解PHP
- nginx伺服器安裝及配置檔案詳解Nginx伺服器
- Nginx 伺服器安裝及配置檔案詳解Nginx伺服器
- MyBatis 配置詳解MyBatis
- zookeeper 配置詳解
- .htaccess配置詳解
- mysql配置詳解MySql
- iptables配置詳解
- nginx配置詳解Nginx
- Linux網路卡的配置檔案詳解及應用Linux
- hortonworks/registry配置詳解
- Druid配置詳解UI
- git ssh配置詳解Git
- 配置pvst詳解
- webxml配置詳解2WebXML
- 監聽配置詳解
- vim配置vimrc詳解
- Spark Metrics配置詳解Spark
- Apache的配置詳解Apache
- 詳解FIX協議的原理、訊息格式及配置開發協議
- nginx快取使用詳解,nginx快取使用及配置步驟Nginx快取
- nginx伺服器access_log日誌分析及配置詳解Nginx伺服器
- nginx 詳解 – 詳細配置說明Nginx
- nginx 詳解 - 詳細配置說明Nginx