最近才開始在專案中使用logback,有一種相見恨晚的感覺,因為它很輕易的滿足了我的幾個需求:
1. 配置簡單,易於上手
2. 乙個日誌檔案中只能某乙個級別的日誌
3. 乙個類中可以指定多個不同的日誌,並且生成的每個日誌檔案中只包含其本身的內容
4. 可以關閉或者開啟某幾個包的日誌,並且可以設定不同的包使用不同的日誌級別。
一、易用性
logback的易用性不用多講,只需要通過下面兩行就可以在console中輸出日誌:
logger debuglogger = logge***ctory.getlogger(myclass.class);
logger.info("this is a log");
程式執行時,logback會查詢預設的配置檔案logback.xml或者logback-test.xml檔案,如果沒有找到它就會使用預設的配置,將日誌列印到console中。下面是乙個簡單配置檔案(
ch.qos.logback.classic.encoder.patternlayoutencoder by default -->
%d [%thread] %-5level %logger - %msg%n
二、日誌級別限制
中的filter來嚴格限制日誌的輸出級別:
info
accept
deny
上面的設定中只會在檔案中出現級別為info的日誌內容。
三、同乙個類中包含不同的日誌
有時候乙個類中可能要求列印不同的日誌資訊,例如有的用來除錯,有的用來記錄程式執行中的某些引數的變化等等。這時候可以通過下面的語句宣告不同的日誌:
logger debuglogger = logge***ctory.getlogger(myclass.class);
logger monitorlogger = logge***ctory.getlogger("monitor");
然後在配置檔案中分別指定不同的輸出檔案(debuglogger使用預設的配置):
%d : %m%n
info
$/sensitive.log.%d
這裡通過設定additivity="false"禁止monitor裡的內容向上傳遞,否則會同時顯示在預設的日誌中。
四、精確控制日誌的應用範圍
在程式除錯中,經常出現的情況是:錯誤只在某乙個或者幾個類或者包裡,所以只需要開啟這幾個類或者包裡的debug級別的log。在以前的專案,使用spring和hibernate時,一旦開啟debug級別的log,程式本身的debug資訊就會被spring和hibernate的大量日誌淹沒,大大降低了除錯的效率。而logback讓這一切變的簡單起來了:
這一行就將org包下面的所有日誌級別設為了error,不會再打擾我們的debug。 使用logback輕鬆管理日誌
最近才開始在專案中使用logback,有一種相見恨晚的感覺,因為它很輕易的滿足了我的幾個需求 1.配置簡單,易於上手 2.乙個日誌檔案中只能某乙個級別的日誌 3.乙個類中可以指定多個不同的日誌,並且生成的每個日誌檔案中只包含其本身的內容 4.可以關閉或者開啟某幾個包的日誌,並且可以設定不同的包使用不...
dubbo使用logback輸出日誌
最近在做dubbo協議擴充套件,發現dubbo錯誤資訊沒有列印。於是跟蹤原始碼發現,dubbo預設使用log4j作為日誌輸出,而我們專案是採用logback來輸出日誌。採取以下方式來切換成slf4j 1 設定jvm啟動引數來指定slf4j 這種方式無論是spring容器還是web容器均可適用 2 w...
logback日誌詳解
logback日誌配置 一 日誌級別已經輸出規則 日誌級別從高到低 off fatal error warn info debug trace all 日誌輸出規則 根據當前root 級別,日誌輸出時,級別高於root預設的級別時會輸出。二 根節點包含的屬性 scan 當此屬性設定為true時,配置...