今天學習乙個專案的時候,裡面有個logback日誌工具。用來做日誌分析的。所以在網上查閱了一番資料,並學習了一波。在此總結一下。
logback是乙個日誌框架,它是log4j作者的又乙個日誌元件。
網上有一段介紹當前日誌框架元件的話,我複製過來。助於理解。
slf4j由log4j作者ceki開發,逐步取代apahce commons logging。
logback由log4j作者ceki開發,逐步取代log4j。
slf4j等於commons-logging,是各種日誌實現的通用入口
logback相比較log4j的優勢
slf4j支援引數化的logger.error("帳號id:{}不存在", userid);
告別了
if(logger.isdebugenable()) 時代。
另外logback的整體性能比log4j也較佳,hibernate等專案已經採用了slf4j。
logback為取代log4j而生,當前可分為三個模組:logback-core,logback-classic,logback-access
1.logger,即我們常用的日誌記錄器。把它關聯到應用的對應的context上之後,主要用於存放日誌物件,也可以定義日誌型別,級別。logger物件一般多定義為靜態常量
public static void main(string args)
3.layout:負責把事件轉化為字串,格式化的日誌資訊的輸出。具體的layout萬用字元,可以檢視幫助文件。
logger可以被分配幾倍,級別包括:trace,debug,info,warn,error,定義域ch.qos.logback.classic.level類,程式會列印高於或等於所設定級別的日誌,設定的日誌等級越高,列印出來的日誌就越少,如果設定級別為info,則優先順序高於info(warn,error)級別的日誌可以被輸出,但是小於該級別的(trace,debug)將不會被輸出,為確保所有logger都能夠最終繼承乙個級別,根logger總是有級別,預設情況下級別為debug。
logback的過濾器基於三值邏輯,允許把他們組裝或成鏈,從而組成任意的符合過濾策略。過濾器很大程度上收到linux的iptables啟發,所謂三值邏輯就是說過濾器返回值只能是accept,deny和neutral的其中乙個
deny表示記錄時間立即被拋棄,不再經過剩餘過濾器,neutral表示有序列表裡的下乙個過濾器會接著處理記錄事件,accept表示記錄時間被立即處理,不再經過剩餘過濾器。
我把最近完善的乙個logback.xml貼上,畢竟實際專案中的檔案最能說明問題。
<?xml version="1.0" encoding="utf-8"?>
$$/debug.log
$/debug/debug.%d.log.gz$$
debug
accept
deny
$/info.log
$/info/info.%d.log.gz$$
info
accept
deny
$/error.log
$/error/error.%d.log.gz$$
error
accept
deny
相關的細節在注釋中寫的很清楚了。 Logback使用小結
info accept deny 10mb log vendorauthjob i.log110 msg n utf 8 標籤 如果你想按時間保留日誌檔案,可以使用timebasedrollingpolicy,它同時繼承了rollingpolicy和triggeringpolicy兩個介面配置如下 ...
SpringBoot使用logback分類收集日記
將所有日誌都儲存在乙個檔案中既不利於排查問題,同時檔案大小也會隨著應用的執行越來越大,正確的做法應該是將error日誌和其他日誌分開,並且不同級別的日誌根據時間進行記錄儲存 springboot框架內建了logback和slf4j框架,所以不需要在新增任何相關依賴避免衝突 分類收集日誌的核心就是日誌...
logback高階特性使用
非同步記錄日誌 注意 該功能需要高版本才能支援,如1.0.11。屬性名型別 描述queuesize intblockingqueue的最大容量,預設情況下,大小為256。discardingthreshold int預設情況下,當blockingqueue還有20 容量,他將丟棄trace debu...