http://logback.qos.ch/manual/architecture.htmlLogger, Appender and Layout
-------------------------------------------------------
Logger:
Logger繼承關(guān)系:
com.foo是com.foo.Bar的雙親(parent),同時(shí)也是其祖先(ancestor)
java是java.util.Vector的祖先,但不是其雙親。
root Logger是所有l(wèi)ogger的祖先,可以這樣獲取:
Logger rootLogger = LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
日志級(jí)別,在ch.qos.logback.classic.Level中,有TRACE, DEBUG, INFO, WARN and ERROR
日志級(jí)別類是final的,如果想擴(kuò)展,可以用Marker類。
如果一個(gè)logger沒有指定級(jí)別,那么它繼承最近的祖先的級(jí)別。
root Logger默認(rèn)是debug級(jí)別。
日志級(jí)別:TRACE < DEBUG < INFO < WARN < ERROR.
如果日志記錄請(qǐng)求——例如logger.info()——的級(jí)別大于等于其logger的級(jí)別,那么該請(qǐng)求生效。
使用LoggerFactory.getLogger(String param)獲取的logger,只要參數(shù)一致,那么獲取到的logger也一致。
即使先創(chuàng)建子logger,再創(chuàng)建雙親logger,后者也會(huì)正確的插到logger樹上。
-------------------------------------------------------
Appenders and Layouts:
一個(gè)logger可以綁定多個(gè)appender。
默認(rèn)情況:每一個(gè)日志請(qǐng)求,會(huì)被發(fā)送到logger對(duì)應(yīng)的所有Appender,以及更高層logger對(duì)應(yīng)的所有appender上。
如果把某個(gè)logger的additivity標(biāo)志設(shè)為false,那么這個(gè)logger會(huì)記錄自身和下層(孫子logger)的日志,但不會(huì)再向上傳遞——也就是把下層的logger的日志攔截到了當(dāng)前這一層logger為止了。
PatternLayout控制輸出的格式,類似C語言的printf格式。
-------------------------------------------------------
參數(shù)化記錄日志:
與slf4j完全相同
-------------------------------------------------------
日志記錄的調(diào)用時(shí)序圖:
