Java日志工具
Java日志,最簡單的方式,就是system.print.out ,err 這樣直接在控制臺打印消息了。
■java.util.logging. Logger
Java 日志 API
java.util.logging ; 在JDK 1.4 版本之后,提供了日志的API ,可以往文件中寫日志了。
從功能上來說,日志 API 本身所需求的功能非常簡單,只需要能夠記錄一段文本即可。API 的使用者在需要進行記錄時,根據當前的上下文信息構造出相應的文本信息,調用 API 完成記錄。一般來說,日志 API 由下面幾個部分組成:
記錄器(Logger):日志 API 的使用者通過記錄器來發出日志記錄請求,并提供日志的內容。在記錄日志時,需要指定日志的嚴重性級別。
格式化器(Formatter):對記錄器所記錄的文本進行格式化,并添加額外的元數據。
處理器(Handler):把經過格式化之后的日志記錄輸出到不同的地方。常見的日志輸出目標包括控制臺、文件和數據庫等。
參考資料:
http://www.ibm.com/developerworks/cn/java/j-lo-practicelog/
■Apache Commons Logging The Logging Component
官網:http://commons.apache.org/proper/commons-logging/
commons-logging-1.2
commons-logging, 最綜合和常見的日志記錄方式, 經常是和log4j 結合起來使用。
參考資料:
http://blog.csdn.net/oscar999/article/details/9698489
■Apache logging services
log4j-1.2.17
log4j , 最強大的記錄日志的方式。 可以通過配置 .properties 或是 .xml 的文件, 配置日志的目的地,格式等等。
apache-log4j-2.3
在Log4J 2.x的性能文檔中有這樣一組對比:
logger.debug("Entry number: " + i + " is " + String.valueOf(entry[i]));
logger.debug("Entry number: {} is {}", i, entry[i]);
上面兩條語句在日志輸出上的效果是一樣的,但是在關閉DEBUG日志時,它們的開銷就不一樣了,主要的影響在于字符串轉換和字符串拼接上,無論是否生效,前者都會將變量轉換為字符串并進行拼接,而后者則只會在需要時執行這些操作。Log4J官方的測試結論是兩者在性能上能相差兩個數量級。
參考資料:
http://www.infoq.com/cn/articles/things-of-java-log-performance
■Simple Logging Facade for Java (SLF4J) ★
除了 JUL 和 log4j 這樣的日志記錄庫之外,還有一類庫用來封裝不同的日志記錄庫。這樣的封裝庫中一開始以 Apache Commons Logging 框架最為流行,現在(2013/11/08/)比較流行的是 SLF4J。
slf4j-1.7.12
■Logback Project★
LOGBack作為一個通用可靠、快速靈活的日志框架,將作為Log4j的替代和SLF4J組成新的日志系統的完整實現。
參考資料:
http://blog.csdn.net/mashangyou/article/details/24304199
http://blog.csdn.net/yycdaizi/article/details/8276265
http://my.oschina.net/pingpangkuangmo/blog/410224
logback 常用配置
logback 常用配置詳解(序)logback 簡介 http://aub.iteye.com/blog/1101222
logback 常用配置詳解(一)<configuration> and <logger>http://aub.iteye.com/blog/1101260
logback 常用配置詳解(二)<appender>http://aub.iteye.com/blog/1103685
logback 常用配置詳解(三) <filter>http://aub.iteye.com/blog/1110008
logback 中文手冊http://aub.iteye.com/blog/1896611
SLF4J與LogBack服務的Demo
http://www.cnblogs.com/jayzee/p/3283793.html
gclogviewer – Java日志查看工具
gclogviewer是一個支持jdk 6的gc log可視化工具,和gcviewer相比,gclogviewer支持根據gc log生成GC的趨勢圖,也支持生成調優建議所需的數據趨勢圖。
官網:http://code.google.com/p/gclogviewer/
Flume – Apache日志服務器
之前介紹的都是一些日志記錄工具,Flume則是一個日志分析系統,Flume是分布式的,它有一個非常靈活的架構,用來收集、聚合以及移動大量日志數據,并且提供可靠、容錯的系統架構。
zLogFabric – 日志存儲系統
zLogFabric 是一個集成的跨平臺日志解決方案,通過消息系統收集各個應用的日志信息存儲到一個集中式的系統中。模塊化的設計使得服務器可對日志進行存儲、轉發、警報以及生成日志統計信息。
zLogFabric 可收集來自文件、syslog、log4j、log4net 以及 Windows 事件的數據。
官網:http://www.zlogfabric.com/(已經無法訪問)
logstash – Java日志管理工具
logstash是一款功能非常強大的日志管理工具,利用logstash,你可以對日志進行傳輸、處理、管理和檢索,并且提供Web接口以便開發者統計和查詢日志信息。
Darks Logs
Darks Logs和log4j類似,也適用于Java、Android等項目,但是Darks Logs使用更加簡單,而且對Android端做了非常大的改善。Darks Logs對Sqlite的日志保存增加了Appender。其旨在解決Android日志無法靈活控制日志等級、格式、保存或顯示目標等常用操作等的問題。
官網:https://github.com/liulhdarks/darks-logs