JAVA日志框架与日志系统

概念

程序运行时打印在文件中的文本

目的

异常记录、排查;数据记录、统计;监控告警

分类

日志框架

参考:http://openwebx.org/docs/logging.html#d0e14851 11.1节日志系统

名称 说明
JCL(Jakarta Commons Logging) http://commons.apache.org/logging/ 这是目前最流行的一个日志框架,由Apache Jakarta社区提供。Spring框架、许多老应用都依赖于JCL。
SLF4J http://www.slf4j.org/ 这是一个最新的日志框架,由Log4j的作者推出。SLF4J提供了新的API,特别用来配合Logback的新功能。但SLF4J同样兼容Log4j。

使用日志框架的好处是:应用的部署者可以决定使用哪一种日志系统(Log4j还是JUL),或者在多种日志系统之间切换,而不需要更改应用的代码。

日志系统

参考:http://openwebx.org/docs/logging.html#d0e14851

名称 说明
Log4j http://logging.apache.org/log4j/ 较早出现的比较成功的日志系统是Log4j。Log4j开创的日志系统模型(Logger/Appender/Level)行之有效,并一直延用至今。
JUL(java.util.logging.*) http://download.oracle.com/javase/6/docs/technotes/guides/logging/overview.html JDK1.4是第一个自带日志系统的JDK,简称(JUL)。JUL并没有明显的优势来战胜Log4j,反而造成了标准的混乱 —— 采用不同日志系统的应用程序无法和谐共存。
Logback http://logback.qos.ch/ 是较新的日志系统。它是Log4j的作者吸取多年的经验教训以后重新做出的一套系统。它的使用更方便,功能更强,而且性能也更高。Logback不能单独使用,必须配合日志框架SLF4J来使用。

使用

在Maven中配置logback作为日志系统

参考:http://openwebx.org/docs/logging.html#d0e14851 11.2.1节

在Maven中配置log4j作为日志系统

参考:http://openwebx.org/docs/logging.html#d0e14851 11.2.2节

SLF4j和JCL两种日志框架可以并存,开发觉得在程序中使用哪个。
具体的日志打印工作在各自日志框架下可以有一个,但不能有两个
所以Logback和slf4j-log4j12不能并存,不然SLF4J不知道该用什么格式输出日志。

目前wmphup使用JCL+log4j打印日志

日志具体配置

参考: http://openwebx.org/docs/logging.html#d0e14851 11.3
日志定义文件的优先级:logback.xml或log4j.xml>web.xml

三大要素,logger、appender、layout,分别定义日志引用、日志打印配置、日志打印格式

posted @ 2017-02-12 11:55  chrishxl  阅读(1014)  评论(0)    收藏  举报