LogBack使用總結

2021-08-18 13:53:37 字數 1825 閱讀 3703

今天學習乙個專案的時候,裡面有個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...