Logback

1、Logback為取代log4j而生

Logback整體流程:Logger 產(chǎn)生日志信息;Layout修飾這條msg的顯示格式;Filter過濾顯示的內(nèi)容;Appender具體的顯示,即保存這日志信息的地方。

Logback是由log4j創(chuàng)始人Ceki Gülcü設(shè)計(jì)的又一個開源日志組件。logback當(dāng)前分成三個模塊:logback-core,logback- classic和logback-access。

2、Logback的核心對象:Logger、Appender、Layout

Logback主要建立于Logger、Appender和Layout 這三個類之上。

Logger:日志的記錄器,把它關(guān)聯(lián)到應(yīng)用的對應(yīng)的context上后,主要用于存放日志對象,也可以定義日志類型、級別。Logger對象一般多定義為靜態(tài)常量,如:

package com.logs;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

? public class MyApp {

? ? ?final static Logger logger = LoggerFactory.getLogger("MyApp.class");

? ? public static void main(String[] args) {

? ? ? logger.trace("trace");

? ? ? logger.debug("debug str");

? ? ? logger.info("info str");

? ? ? logger.warn("warn");

? ? ? logger.error("error");

? ? }

}

Appender:用于指定日志輸出的目的地,目的地可以是控制臺、文件、遠(yuǎn)程套接字服務(wù)器、 MySQL、 PostreSQL、Oracle和其他數(shù)據(jù)庫、 JMS和遠(yuǎn)程UNIX Syslog守護(hù)進(jìn)程等。

Layout:負(fù)責(zé)把事件轉(zhuǎn)換成字符串,格式化的日志信息的輸出。具體的Layout通配符,可以直接查看幫助文檔。

3、Level 有效級別

Logger可以被分配級別。級別包括:TRACE、DEBUG、INFO、WARN和ERROR,定義于ch.qos.logback.classic.Level類。程序會打印高于或等于所設(shè)置級別的日志,設(shè)置的日志等級越高,打印出來的日志就越少。如果設(shè)置級別為INFO,則優(yōu)先級高于等于INFO級別(如:INFO、 WARN、ERROR)的日志信息將可以被輸出,小于該級別的如DEBUG將不會被輸出。為確保所有l(wèi)ogger都能夠最終繼承一個級別,根logger總是有級別,默認(rèn)情況下,這個級別是DEBUG。

4、 三值邏輯

Logback的過濾器基于三值邏輯(ternary logic),允許把它們組裝或成鏈,從而組成任意的復(fù)合過濾策略。過濾器很大程度上受到Linux的iptables啟發(fā)。這里的所謂三值邏輯是說,過濾器的返回值只能是ACCEPT、DENY和NEUTRAL的其中一個。

如果返回DENY,那么記錄事件立即被拋棄,不再經(jīng)過剩余過濾器;

如果返回NEUTRAL,那么有序列表里的下一個過濾器會接著處理記錄事件;

如果返回ACCEPT,那么記錄事件被立即處理,不再經(jīng)過剩余過濾器。

5、Filter 過濾器

Logback-classic提供兩種類型的過濾器:常規(guī)過濾器和TuroboFilter過濾器。Logback整體流程:Logger 產(chǎn)生日志信息;Layout修飾這條msg的顯示格式;Filter過濾顯示的內(nèi)容;Appender具體的顯示,即保存這日志信息的地方。

6、具體使用案例

Java項(xiàng)目中一般都會應(yīng)用比如struts、spring、hibernate等開源框架,而這些框架很多是應(yīng)用log4j記錄日志的,所以我們考慮用log4j+slf4j+ logback 。這樣我們需要導(dǎo)入log4j-over-slf4j-1.6.4.jar 、logback-classic-1.0.1.jar 、logback-core-1.0.1.jar 、slf4j-api-1.6.4.jar ,如果你要用到EvaluatorFilter過濾器來過濾日志Msg中的特殊字符需要導(dǎo)入其依賴包janino-2.3.2.jar。其logback.xml

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Log Java日志:(slf4j、log4j、logback、common-logging ) slf4j 是規(guī)...
    年少懵懂丶流年夢閱讀 18,003評論 1 11
  • logback詳解 說明:下面內(nèi)容從網(wǎng)上搜集整理而來 與log4j對比 更快的執(zhí)行速度: 基于我們先前在log4j...
    億萬年星空閱讀 3,155評論 1 1
  • 寫Java也有一段時間了,一直都有用slf4j log4j輸出日志的習(xí)慣。但是始終都是抱著“拿來主義”的態(tài)度,復(fù)制...
    Minimumy閱讀 1,465評論 1 7
  • 在應(yīng)用程序中添加日志記錄總的來說基于三個目的:監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計(jì)分析...
    時待吾閱讀 5,204評論 1 13
  • 站在巨人的肩膀上 現(xiàn)在已經(jīng)是研究生階段了,能上課的時間屈指可數(shù)。任何一門課,如果真的去用心聽,都不會是浪費(fèi)時間。因...
    YinongLong閱讀 332評論 0 1

友情鏈接更多精彩內(nèi)容