本文其實(shí)是一個(gè)日志系統(tǒng)的概念大雜燴,包含slf4j、log4j、logback的概念澄清與使用方法介紹;
1 概念
SLF4J:
即簡單日志門面(Simple Logging Facade for Java),不是具體的日志解決方案,它只服務(wù)于各種各樣的日志系統(tǒng)。按照官方的說法,SLF4J是一個(gè)用于日志系統(tǒng)的簡單Facade,允許最終用戶在部署其應(yīng)用時(shí)使用其所希望的日志系統(tǒng)。
在使用SLF4J的時(shí)候,不需要在代碼中或配置文件中指定你打算使用那個(gè)具體的日志系統(tǒng),SLF4J提供了統(tǒng)一的記錄日志的接口,只要按照其提供的方法記錄即可,最終日志的格式、記錄級別、輸出方式等通過具體日志系統(tǒng)的配置來實(shí)現(xiàn),因此可以在應(yīng)用中靈活切換日志系統(tǒng)。
官方網(wǎng)站:http://www.slf4j.org/
log4j
Log For Java,Apache的一個(gè)開源項(xiàng)目,可以靈活地記錄日志信息,我們可以通過Log4j的配置文件靈活配置日志的記錄格式、記錄級別、輸出格式,而不需要修改已有的日志記錄代碼。
官方網(wǎng)站:http://logging.apache.org/log4j/1.2/
logback
Logback是由log4j創(chuàng)始人設(shè)計(jì)的又一個(gè)開源日志組件。logback當(dāng)前分成三個(gè)模塊:logback-core,logback- classic和logback-access。logback-core是其它兩個(gè)模塊的基礎(chǔ)模塊。logback-classic是log4j的一個(gè)改良版本。此外logback-classic完整實(shí)現(xiàn)SLF4J API使你可以很方便地更換成其它日志系統(tǒng)如log4j或JDK14 Logging。logback-access訪問模塊與Servlet容器集成提供通過Http來訪問日志的功能。
官方完整: http://logback.qos.ch
2 log4j-logback對比##
log4j和logback出自同一作者,logback認(rèn)為是log4j的增強(qiáng),具體我們做一個(gè)分析;
2.1 易用性
- logback支持了log4j能做的配置,并進(jìn)行了增強(qiáng),諸如<if><then><else>、<filter>、<sift>等語法實(shí)現(xiàn)更強(qiáng)大的控制;