做为一名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
本文做者:码农网 – 小峰
[ 原创做品,转载必须在正文中标注并保留原文连接和做者等信息。]