作为一名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