新聞中心
前言
文本已收錄至我的GitHub倉庫,歡迎Star:https://github.com/bin392328206/six-finger

嘉定ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
種一棵樹最好的時間是十年前,其次是現(xiàn)在
絮叨
為啥想著寫這個呢?是這樣,小六六每次搭建系統(tǒng)的時候,都會涉及到這塊的配置嘛,然后我發(fā)現(xiàn)我搭建了這么多次的系統(tǒng),大部分的情況下,竟然是copy來完成的,然后這次搭建的過程中,又對這些配置又了點理解,所以打算給大家分享分享一些關鍵的點,讓大家多Java 項目的日志有一些更加深入的理解吧!當然這邊文章也得給大家清晰的理解logback的配置吧!盡量寫的直白點!文章打算沖以下幾個方面來描述
- 官網(wǎng)文檔
- logback.xml常用配置詳解
- 一個小案例加深對配置的理解
- logback.xml的參考配置(實戰(zhàn))
- 開發(fā)時,小六六自己的一些特殊的用法(實戰(zhàn))
參考的文檔
開始就先給大家給貼下參考的文檔吧!不過我覺得你應該不會去看,哈哈。我也是一樣的,看不下去官方文檔
logback.xml常用配置詳解
常用節(jié)點結構圖:
相信大家對這個圖應該不陌生,就是我們再spring-logback.xml里面要配置的文件就是這幾個配置,下面我先來給大家講講細節(jié)
根節(jié)點 configuration
包含下面三個屬性
- scan: 當此屬性設置為true時,配置文件如果發(fā)生改變,將會被重新加載,默認值為true。
- scanPeriod: 設置監(jiān)測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒。當scan為true時,此屬性生效。默認的時間間隔為1分鐘。
- debug: 當此屬性設置為true時,將打印出logback內(nèi)部日志信息,實時查看logback運行狀態(tài)。默認值為false。
子節(jié)點 appender
它的作用是負責寫日志的組件,它有兩個必要屬性name和class。name指定appender名稱,class指定appender的全限定名。
下面小六六帶大家來看看我們常見的幾種appender吧!工作上肯定用的到的
ConsoleAppender 把日志輸出到控制臺
encoder:對日志進行格式化。
${CONSOLE_LOG_PATTERN}
FileAppender:把日志添加到文件
- file:被寫入的文件名,可以是相對目錄,也可以是絕對目錄,如果上級目錄不存在會自動創(chuàng)建,沒有默認值。
- append:如果是 true,日志被追加到文件結尾,如果是 false,清空現(xiàn)存文件,默認是true。
- encoder:對記錄事件進行格式化。
- prudent:如果是 true,日志會被安全的寫入文件,即使其他的FileAppender也在向此文件做寫入操作,效率低,默認是 false。
testFile.log true %-4relative [%thread] %-5level %logger{35} - %msg%n
RollingFileAppender 滾動記錄文件,先將日志記錄到指定文件,當符合某個條件時,將日志記錄到其他文件 這個小六六覺得是用的最多的一個了
- file:被寫入的文件名,可以是相對目錄,也可以是絕對目錄,如果上級目錄不存在會自動創(chuàng)建,沒有默認值。
- append:如果是 true,日志被追加到文件結尾,如果是 false,清空現(xiàn)存文件,默認是true。
- rollingPolicy:當發(fā)生滾動時,決定RollingFileAppender的行為,涉及文件移動和重命名。屬性class定義具體的滾動策略類
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy":最常用的滾動策略,它根據(jù)時間來制定滾動策略,既負責滾動也負責出發(fā)滾動。
${log.path}/dataBi.dat ${log.path}/dataBi.dat.%d{yyyyMMdd}.gz 30 UTF-8 %date|%msg%n
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy":查看當前活動文件的大小,如果超過指定大小會告知RollingFileAppender 觸發(fā)當前活動文件滾動
${log.path}/debug.log ${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz 50MB 30 %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n
子節(jié)點 logger
用來設置某一個包或具體的某一個類的日志打印級別、以及指定。
- logger僅有一個name屬性,一個可選的level和一個可選的addtivity屬性
- 可以包含零個或多個元素,標識這個appender將會添加到這個logger。
- name: 用來指定受此loger約束的某一個包或者具體的某一個類。
- level: 用來設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,還有一個特殊值INHERITED或者同義詞NULL,代表強制執(zhí)行上級的級別。如果未設置此屬性,那么當前l(fā)oger將會繼承上級的級別。
- addtivity: 是否向上級logger傳遞打印信息。默認是true??梢园銈€或多個appender-ref素,標識這個appender將會添加到這個logger。
像我們的bi日志,一般這種標準化,流程化的日志。
子節(jié)點root
它也是logger元素,但是它是根loger,是所有的上級。只有一個level屬性,因為name已經(jīng)被命名為"root",且已經(jīng)是最上級了。
好了,上面就是我們比較重要的幾個元素了,還有一兩個小元素的話,小六六這邊就沒給大家看了。
logback.xml配置示例
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n ${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log 30 %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n 10MB
一個小案例加深對配置的理解
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n ${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log 30 %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n 10MB
開發(fā)時,小六六自己的一些特殊的用法(實戰(zhàn))
- 第一個,就是在日志的時候加上traceId,這樣的好處就是可以把日志收集到日志平臺的時候,可以很好的查到整個流程
${graylogHost} ${graylogPort} ${originHost} false true true false false true %m%nopex %m%n app_name:${appName} app_version:${appVersion} os_arch:${os.arch} os_name:${os.name} os_version:${os.version} uri:%X{uri} uid:%X{uid} ip:%X{ip} traceId:%X{traceId}
其中的原理是通過MDC實現(xiàn)的
- 第二個就是,我們一些格式話的日志,做到數(shù)倉里面
${log.path}/dataBi.dat ${log.path}/dataBi.dat.%d{yyyyMMdd}.gz 30 UTF-8 %date|%msg%n ${log.path}/dataDi.dat ${log.path}/dataDi.dat.%d{yyyyMMdd}.gz 30 UTF-8 %date|%msg%n
類似于這種。。
結束
我是小六六,三天打魚,兩天曬網(wǎng),今天就到這了哈!
網(wǎng)站題目:一文讀懂Logback的配置
分享網(wǎng)址:http://www.dlmjj.cn/article/cciodsi.html


咨詢
建站咨詢
