logback的配置文件由根節(jié)點configuration和三個子節(jié)點(appender, logger, root)組成,下面分別簡單介紹。
configuration
<configuration>節(jié)點包含三個可配置的屬性
- scan 表示如果配置文件更改,是否自動掃描加載,默認(rèn)值是true。
- scanPeriod 表示自動掃描加載的時間間隔诈乒,默認(rèn)是60 seconds,時間間隔的單位可以是milliseconds婆芦、seconds怕磨、minutes 或者 hours,默認(rèn)是milliseconds消约。
- debug 是否打印logback自身的日志肠鲫,默認(rèn)false。
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 其他配置省略-->
</configuration>
logger
- <logger>節(jié)點包含三個可配置的屬性
- name 必選或粮,你必須為每一個logger指定一個名稱导饲,通常name是類的全限定名或包名。
- level 可選氯材,表示這個logger的日志級別渣锦,如果不指定將繼承父級logger的級別,如果父級logger也沒指定氢哮,則繼續(xù)向父級繼承袋毙,直到root節(jié)點。例如:<logger name="org.schhx"/>是<logger name="org.schhx.springbootlearn"/>父級
- addtivity 可選冗尤,表示是否向父級loger傳遞打印信息听盖,默認(rèn)是true胀溺。
<logger>節(jié)點包含零個或多個<appender-ref>,表示logger的信息由綁定的appender打印皆看。logger的信息根據(jù)addtivity決定是否向父級傳遞仓坞,直到root,本級以及所有綁定了appender的父級都將打印本級的日志悬蔽。
一般情況下扯躺,我們都是對logger只配置name和level,addtivity使用默認(rèn)值true蝎困,不綁定appender,使打印信息傳遞到root倍啥,在root綁定appender禾乘,統(tǒng)一在root打印日志。
<logger name="org.schhx.springbootlearn" level="DEBUG"/>
root
我們已經(jīng)知道root其實就是一個特殊的logger虽缕,它是所有l(wèi)ogger的祖先始藕,它只有一個可配置的屬性,就是level氮趋,如果不配置的話伍派,表示所有級別都可以打印,雖然可以不配置剩胁,但是建議配置诉植。
同樣root可以配置零個或多個appender,建議為root至少配置一個appender昵观。
<root level="info">
<appender-ref ref="console"/>
</root>
appender
appender是具體負(fù)責(zé)寫日志的組件晾腔,由logger輸出的信息都將由appender處理,然后寫到具體的日志里啊犬。
appender有兩個屬性name和class灼擂。name是appender的標(biāo)識,也是<appender-ref ref="appender-name"/>中的引用值觉至;class是使用appender類型的全限定名剔应。常用的appender有ConsoleAppender和RollingFileAppender。