作為一名java程序員,我們開發了很多java應用程序,包括桌面應用、web應用以及移動應用。然而日志系統是一個成熟java應用所必不可少的,在開發和調試階段,日志可以幫助我們更好更快地定位bug;在運行維護階段,日志系統又可以幫我們記錄大部分的異常信息,從而幫助我們更好的完善系統。本文要來分享一些java程序員最常用的java日志框架組件。
1、log4j – 最受歡迎的java日志組件
log4j是一款基于java的開源日志組件,log4j功能非常強大,我們可以將日志信息輸出到控制臺、文件、用戶界面,也可以輸出到操作系統的事件記錄器和一些系統常駐進程。更值得一提的是,log4j可以允許你非常便捷地自定義日志格式和日志等級,可以幫助開發人員全方位地掌控日志信息。
官方網站:http://logging.apache.org/log4j/2.x/
下面是使用log4j的一個簡單例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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" ); } } |
2、gclogviewer – java日志查看工具
gclogviewer是一個支持jdk 6的gc log可視化工具,和gcviewer相比,gclogviewer支持根據gc log生成gc的趨勢圖,也支持生成調優建議所需的數據趨勢圖。
官方網站:http://code.google.com/p/gclogviewer/
3、slf4j – 基于api的java日志框架
slf4j提供了一個簡單統一的日志記錄接口,開發者在配置和部署時只需要實現這個接口即可實現日志功能。 logging api實現既可以選擇直接實現slf4j接的loging apis如: nlog4j、simplelogger。也可以通過slf4j提供的api實現來開發相應的適配器如log4jloggeradapter、jdk14loggeradapter。
官方網站:http://www.slf4j.org/
4、flume – apache日志服務器
之前介紹的都是一些日志記錄工具,flume則是一個日志分析系統,flume是分布式的,它有一個非常靈活的架構,用來收集、聚合以及移動大量日志數據,并且提供可靠、容錯的系統架構。
官方網站:http://flume.apache.org/
5、zlogfabric – 日志存儲系統
zlogfabric 是一個集成的跨平臺日志解決方案,通過消息系統收集各個應用的日志信息存儲到一個集中式的系統中。模塊化的設計使得服務器可對日志進行存儲、轉發、警報以及生成日志統計信息。
zlogfabric 可收集來自文件、syslog、log4j、log4net 以及 windows 事件的數據。
官方網站:http://www.zlogfabric.com/
6、logstash – java日志管理工具
logstash是一款功能非常強大的日志管理工具,利用logstash,你可以對日志進行傳輸、處理、管理和檢索,并且提供web接口以便開發者統計和查詢日志信息。
官方網站:http://www.logstash.net/
7、commons logging
commons logging的實現不依賴于具體的日志實現工具,僅僅提供一些日志操作的抽象接口,它對其他的日志工具做了封裝,比如log4j, avalon logkit, 和jdk 1.4等。
官方網站:http://commons.apache.org/proper/commons-logging/
8、darks logs
darks logs和log4j類似,也適用于java、android等項目,但是darks logs使用更加簡單,而且對android端做了非常大的改善。darks logs對sqlite的日志保存增加了appender。其旨在解決android日志無法靈活控制日志等級、格式、保存或顯示目標等常用操作等的問題。
官方網站:https://github.com/liulhdarks/darks-logs