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

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


咨詢
建站咨詢
