Java日志
2015/7/18
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
官网:http://logging.apache.org/
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。
官网:http://www.slf4j.org/
slf4j-1.7.12
■Logback Project★
官网:http://logback.qos.ch/
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是分布式的,它有一个非常灵活的架构,用来收集、聚合以及移动大量日志数据,并且提供可靠、容错的系统架构。
官网:http://flume.apache.org/
zLogFabric – 日志存储系统
zLogFabric 是一个集成的跨平台日志解决方案,通过消息系统收集各个应用的日志信息存储到一个集中式的系统中。模块化的设计使得服务器可对日志进行存储、转发、警报以及生成日志统计信息。
zLogFabric 可收集来自文件、syslog、log4j、log4net 以及 Windows 事件的数据。
官网:http://www.zlogfabric.com/(已经无法访问)
logstash – Java日志管理工具
logstash是一款功能非常强大的日志管理工具,利用logstash,你可以对日志进行传输、处理、管理和检索,并且提供Web接口以便开发者统计和查询日志信息。
官网:http://www.logstash.net/
Darks Logs
Darks Logs和log4j类似,也适用于Java、Android等项目,但是Darks Logs使用更加简单,而且对Android端做了非常大的改善。Darks Logs对Sqlite的日志保存增加了Appender。其旨在解决Android日志无法灵活控制日志等级、格式、保存或显示目标等常用操作等的问题。
官网:https://github.com/liulhdarks/darks-logs