Java日志

原创
2015/07/18 11:48
阅读数 280

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

 

 

展开阅读全文
打赏
0
17 收藏
分享
加载中
更多评论
打赏
0 评论
17 收藏
0
分享
返回顶部
顶部