一:Slf4j? logback log4j 關(guān)系
Slf4j:slf4j 相當(dāng)于一個(gè)接口 他可以兼容很多種logging實(shí)現(xiàn) (The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks)
logback 和log4j 就是上文說(shuō)的 logging frameworks? 是目前比較流行的框架
附上slf4j和其他framework的組合圖
目前比較流行的搭配是slf4j+log4j or slf4j+logback
Logback vs log4j
?????? Logback is intended as a successor to the popular log4j project? (logback是在log4j上的一個(gè)更優(yōu)的框架)
二: 工程使用logback配置
1.在jar管理配置文件 添加依賴(習(xí)慣使用maven or gradle來(lái)管理jar包依賴)
'ch.qos.logback:logback-classic:1.1.1',
'org.slf4j:slf4j-api:1.7.6'
2.在配置文件目錄下添加logback.xml文件
程序啟動(dòng)后 logback會(huì)在class path按順序找logback-test.xml,? logback.groovy,? logback.xml 如果三者都沒(méi)有 logback會(huì)用內(nèi)在機(jī)制BasicConfigurator? 打印日志到控制臺(tái)
三: logback.xml-configuration (logger and root)
<configuration scan="true" scanPeriod="30 seconds">
******
</configuration>
scan: 是否開啟監(jiān)視log配置文件變動(dòng) 如果設(shè)為true 當(dāng)配置文件有改動(dòng) 會(huì)立即生效? (具體的通過(guò)ReconfigureOnChangeFilter實(shí)現(xiàn))
scanPeriod: 間隔多長(zhǎng)時(shí)間掃描一次 單位支持milliseconds, seconds, minutes or hours 默認(rèn)為間隔為一分鐘 默認(rèn)單位為milliseconds (建議合理設(shè)置這個(gè)數(shù)字 考慮性能)
configuration元素是配置文件的管理者 他下面主要有這幾個(gè)元素
logger
name:設(shè)置某一個(gè)類 或者寶下的日志 日志打印級(jí)別 和日志輸出地
level: 日志輸出最低級(jí)別 低于該指定日志級(jí)別的日志將不再輸出
additivity:日志是否會(huì)向上傳遞 就是自己打印出來(lái)的日志 是否允許上級(jí)也打印出來(lái)
appender-ref: 可以配*(代表0或者+) 指定日志的輸出地
root
level: root唯一支持的attribute
appender-ref: 同logger
四: logback.xml-configuration (appender)
appender 日志輸出組件 主要的元素及其關(guān)系 附上圖
appender
name:自定義名稱 和appender-ref搭配使用 指定某個(gè)類或指定包按照哪個(gè)appender指定格式的信息輸出到指定地
class: 指定appender按照指定類來(lái)實(shí)例化寫組件?
layout: 有一個(gè)按照pattern格式 把日志信息寫到輸出流
今天只是介紹了一個(gè)大概 后續(xù)會(huì)詳細(xì)的跟進(jìn)