slf4j 的全稱是 Simple Loging Facade For Java,即它僅僅是一個為 Java 程式提供日誌輸出的統一接 口,並不是一個具體的日誌實現方案,就比如 JDBC 一樣,只是一種規則而已。所以單獨的 slf4j 是不 能工作的,必須搭配其他具體的日誌實現方案,比如 apache 的 org.apache.log4j.Logger,jdk 自帶 的 java.util.logging.Logger 等。
Log4j 是 Apache 的一個開源專案,通過使用 Log4j,我們可以控制日誌資訊輸送的目的地是控制檯、 檔案、GUI 元件,甚至是套介面伺服器、NT 的事件記錄器、UNIX Syslog 守護程式等;我們也可以控 制每一條日誌的輸出格式;通過定義每一條日誌資訊的級別,我們能夠更加細緻地控制日誌的生成過程。
Log4j 由三個重要的組成構成:日誌記錄器(Loggers),輸出端(Appenders)和日誌格式化器(Layout)。
1.Logger:控制要啟用或禁用哪些日誌記錄語句,並對日誌資訊進行級別限制
2.Appenders : 指定了日誌將列印到控制檯還是檔案中
3.Layout : 控制日誌資訊的顯示格式
Log4j 中將要輸出的 Log 資訊定義了 5 種級別,依次為 DEBUG、INFO、WARN、ERROR 和 FATAL, 當輸出時,只有級別高過配置中規定的 級別的資訊才能真正的輸出,這樣就很方便的來配置不同情況 下要輸出的內容,而不需要更改程式碼。
簡單地說,Logback 是一個 Java 領域的日誌框架。它被認為是 Log4J 的繼承人。 Logback 主要由三個模組組成:logback-core,logback-classic。logback-access 、logback-core 是其它模組的基礎設施,其它模組基於它構建,顯然,logback-core 提供了一些關鍵的
通用機制。
logback-classic 的地位和作用等同於 Log4J,它也被認為是 Log4J 的一個改進版,並且它實現了簡單 日誌門面 SLF4J;
logback-access 主要作為一個與 Servlet 容器互動的模組,比如說 tomcat 或者 jetty,提供一些與 HTTP 訪問相關的功能。
3.1. Logback 優點
同樣的程式碼路徑,Logback 執行更快
更充分的測試
原生實現了 SLF4J API(Log4J 還需要有一箇中間轉換層)
內容更豐富的文件
支援 XML 或者 Groovy 方式配置
配置檔案自動熱載入
從 IO 錯誤中優雅恢復
自動刪除日誌歸檔
自動壓縮日誌成為歸檔檔案
支援 Prudent 模式,使多個 JVM 程式能記錄同一個日誌檔案
支援配置檔案中加入條件判斷來適應不同的環境
更強大的過濾器
支援 SiftingAppender(可篩選 Appender)
異常棧資訊帶有包資訊
ELK 是軟體集合 Elasticsearch、Logstash、Kibana 的簡稱,由這三個軟體及其相關的元件可以打 造大規模日誌實時處理系統。
- Elasticsearch 是一個基於 Lucene 的、支援全文索引的分散式儲存和索引引擎,主要負責將 日誌索引並儲存起來,方便業務方檢索查詢。
- Logstash 是一個日誌收集、過濾、轉發的中介軟體,主要負責將各條業務線的各類日誌統一收 集、過濾後,轉發給 Elasticsearch 進行下一步處理。
- Kibana 是一個視覺化工具,主要負責查詢 Elasticsearch 的資料並以視覺化的方式展現給業 務方,比如各類餅圖、直方圖、區域圖等。
本作品採用《CC 協議》,轉載必須註明作者和本文連結