做爲一名Java程序員,咱們開發了不少Java應用程序,包括桌面應用、WEB應用以及移動應用。然而日誌系統是一個成熟Java應用所必不可少的,在開發和調試階段,日誌能夠幫助咱們更好更快地定位bug;在運行維護階段,日誌系統又能夠幫咱們記錄大部分的異常信息,從而幫助咱們更好的完善系統。本文要來分享一些Java程序員最經常使用的Java日誌框架組件。html
Log4j是一款基於Java的開源日誌組件,Log4j功能很是強大,咱們能夠將日誌信息輸出到控制檯、文件、用戶界面,也能夠輸出到操做系統的事件記錄器和一些系統常駐進程。更值得一提的是,Log4j能夠容許你很是便捷地自定義日誌格式和日誌等級,能夠幫助開發人員全方位地掌控日誌信息。java
官方網站:http://logging.apache.org/log4j/2.x/git
下面是使用Log4j的一個簡單例子:程序員
package com.mai.test; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class Log4jTest { public static void main(String[] args) { Logger log = Logger.getLogger(Log4jTest.class); PropertyConfigurator.configure("src/log4j.properties"); log.debug("yes,debug"); log.info("yes,info"); log.error("yes,error"); log.warn("yes,warn"); } }
gclogviewer是一個支持jdk 6的gc log可視化工具,和gcviewer相比,gclogviewer支持根據gc log生成GC的趨勢圖,也支持生成調優建議所需的數據趨勢圖。github
官方網站:http://code.google.com/p/gclogviewer/apache
SLF4J提供了一個簡單統一的日誌記錄接口,開發者在配置和部署時只須要實現這個接口便可實現日誌功能。 Logging API實現既能夠選擇直接實現SLF4J接的loging APIs如: NLOG4J、SimpleLogger。也能夠經過SLF4J提供的API實現來開發相應的適配器如Log4jLoggerAdapter、JDK14LoggerAdapter。服務器
官方網站:http://www.slf4j.org/架構
以前介紹的都是一些日誌記錄工具,Flume則是一個日誌分析系統,Flume是分佈式的,它有一個很是靈活的架構,用來收集、聚合以及移動大量日誌數據,而且提供可靠、容錯的系統架構。框架
官方網站:http://flume.apache.org/分佈式
zLogFabric 是一個集成的跨平臺日誌解決方案,經過消息系統收集各個應用的日誌信息存儲到一個集中式的系統中。模塊化的設計使得服務器可對日誌進行存儲、轉發、警報以及生成日誌統計信息。
zLogFabric 可收集來自文件、syslog、log4j、log4net 以及 Windows 事件的數據。
官方網站:http://www.zlogfabric.com/
logstash是一款功能很是強大的日誌管理工具,利用logstash,你能夠對日誌進行傳輸、處理、管理和檢索,而且提供Web接口以便開發者統計和查詢日誌信息。
官方網站:http://www.logstash.net/
Commons Logging的實現不依賴於具體的日誌實現工具,僅僅提供一些日誌操做的抽象接口,它對其餘的日誌工具作了封裝,好比Log4J, Avalon LogKit, 和JDK 1.4等。
官方網站:http://commons.apache.org/proper/commons-logging/
Darks Logs和log4j相似,也適用於Java、Android等項目,可是Darks Logs使用更加簡單,並且對Android端作了很是大的改善。Darks Logs對Sqlite的日誌保存增長了Appender。其旨在解決Android日誌沒法靈活控制日誌等級、格式、保存或顯示目標等經常使用操做等的問題。
官方網站:https://github.com/liulhdarks/darks-logs
本文連接:http://www.codeceo.com/article/8-java-log-framework.html
本文做者:碼農網 – 小峯
[ 原創做品,轉載必須在正文中標註並保留原文連接和做者等信息。]