網(wǎng)站建設(shè)的欄目百度推廣一個(gè)月費(fèi)用
目錄
- 1、Slf4j
- 2、Log4j
- 3、LogBack
- 4、Logback 優(yōu)點(diǎn)
- 5、ELK
1、Slf4j
slf4j 的全稱是 Simple Loging Facade For Java,即它僅僅是一個(gè)為 Java 程序提供日志輸出的統(tǒng)一接口,并不是一個(gè)具體的日志實(shí)現(xiàn)方案,就比如 JDBC 一樣,只是一種規(guī)則而已。所以單獨(dú)的 slf4j 是不能工作的,必須搭配其他具體的日志實(shí)現(xiàn)方案,比如 apache 的 org.apache.log4j.Logger,jdk 自帶的 java.util.logging.Logger 等
2、Log4j
Log4j 是 Apache 的一個(gè)開源項(xiàng)目,通過(guò)使用 Log4j,我們可以控制日志信息輸送的目的地是控制臺(tái)、文件、GUI 組件,甚至是套接口服務(wù)器、NT 的事件記錄器、UNIX Syslog 守護(hù)進(jìn)程等;我們也可以控制每一條日志的輸出格式;通過(guò)定義每一條日志信息的級(jí)別,我們能夠更加細(xì)致地控制日志的生成過(guò)程。
Log4j 由三個(gè)重要的組成構(gòu)成:日志記錄器(Loggers),輸出端(Appenders)和日志格式化器(Layout)。
- Logger:控制要啟用或禁用哪些日志記錄語(yǔ)句,并對(duì)日志信息進(jìn)行級(jí)別限制
- Appenders : 指定了日志將打印到控制臺(tái)還是文件中
- Layout : 控制日志信息的顯示格式
Log4j 中將要輸出的 Log 信息定義了 5 種級(jí)別,依次為 DEBUG、INFO、WARN、ERROR 和 FATAL,當(dāng)輸出時(shí),只有級(jí)別高過(guò)配置中規(guī)定的 級(jí)別的信息才能真正的輸出,這樣就很方便的來(lái)配置不同情況下要輸出的內(nèi)容,而不需要更改代碼。
3、LogBack
簡(jiǎn)單地說(shuō),Logback 是一個(gè) Java 領(lǐng)域的日志框架。它被認(rèn)為是 Log4J 的繼承人。
Logback 主要由三個(gè)模塊組成:logback-core,logback-classic。logback-access
logback-core 是其它模塊的基礎(chǔ)設(shè)施,其它模塊基于它構(gòu)建,顯然,logback-core 提供了一些關(guān)鍵的通用機(jī)制。
logback-classic 的地位和作用等同于 Log4J,它也被認(rèn)為是 Log4J 的一個(gè)改進(jìn)版,并且它實(shí)現(xiàn)了簡(jiǎn)單日志門面 SLF4J;
logback-access 主要作為一個(gè)與 Servlet 容器交互的模塊,比如說(shuō) tomcat 或者 jetty,提供一些與HTTP 訪問(wèn)相關(guān)的功能
4、Logback 優(yōu)點(diǎn)
? 同樣的代碼路徑,Logback 執(zhí)行更快
? 更充分的測(cè)試
? 原生實(shí)現(xiàn)了 SLF4J API(Log4J 還需要有一個(gè)中間轉(zhuǎn)換層)
? 內(nèi)容更豐富的文檔
? 支持 XML 或者 Groovy 方式配置
? 配置文件自動(dòng)熱加載13/04/2018 Page 170 of 283
? 從 IO 錯(cuò)誤中優(yōu)雅恢復(fù)
? 自動(dòng)刪除日志歸檔
? 自動(dòng)壓縮日志成為歸檔文件
? 支持 Prudent 模式,使多個(gè) JVM 進(jìn)程能記錄同一個(gè)日志文件
? 支持配置文件中加入條件判斷來(lái)適應(yīng)不同的環(huán)境
? 更強(qiáng)大的過(guò)濾器
? 支持 SiftingAppender(可篩選 Appender)
? 異常棧信息帶有包信息
5、ELK
ELK 是軟件集合 Elasticsearch、Logstash、Kibana 的簡(jiǎn)稱,由這三個(gè)軟件及其相關(guān)的組件可以打造大規(guī)模日志實(shí)時(shí)處理系統(tǒng)。
- Elasticsearch 是一個(gè)基于 Lucene的、支持全文索引的分布式存儲(chǔ)和索引引擎,主要負(fù)責(zé)將日志索引并存儲(chǔ)起來(lái),方便業(yè)務(wù)方檢索查詢。
- Logstash 是一個(gè)日志收集、過(guò)濾、轉(zhuǎn)發(fā)的中間件,主要負(fù)責(zé)將各條業(yè)務(wù)線的各類日志統(tǒng)一收集、過(guò)濾后,轉(zhuǎn)發(fā)給Elasticsearch 進(jìn)行下一步處理。
- Kibana 是一個(gè)可視化工具,主要負(fù)責(zé)查詢 Elasticsearch的數(shù)據(jù)并以可視化的方式展現(xiàn)給業(yè)務(wù)方,比如各類餅圖、直方圖、區(qū)域圖等