1.1.日志系统(Logging System)

Log4j —— 较早出现的比较成功的日志系统是Log4j。Log4j开创的日志系统模型(Logger/Appender/Level)行之有效,并一直延用至今。

JUL(java.util.logging.*—— JDK1.4是第一个自带日志系统的JDK,简称(JUL)。JUL并没有明显的优势来战胜Log4j,反而造成了标准的混乱 —— 采用不同日志系统的应用程序无法和谐共存。

Logback —— 是较新的日志系统。它是Log4j的作者吸取多年的经验教训以后重新做出的一套系统。它的使用更方便,功能更强,而且性能也更高。Logback不能单独使用,必须配合日志框架SLF4J来使用。

1.2.日志框架(Logging Framework)

JUL诞生以后,为了克服多种日志系统并存所带来的混乱,就出现了“日志框架”。日志框架本身不提供记录日志的功能,它只提供了日志调用的接口。日志框架依赖于实际的日志系统如Log4j或JUL来产生真实的日志。

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

JCL(Jakarta Commons Logging —— 这是目前最流行的一个日志框架,由Apache Jakarta社区提供。Spring框架、Webx2框架都依赖于JCL。

SLF4J —— 这是一个最新的日志框架,由Log4j的作者推出。SLF4J提供了新的API,特别用来配合Logback的新功能。但SLF4J同样兼容Log4j。该框架用来取代JCL框架。

1.3.SLF4J
SLF4J(Simple Logging Facade for Java) 是一个通用的日志框架,不能何以谓之 Facade(门面),所扮演的角色相当于 Jakarta Commons Logging。
SLF4J的两种应用模式:SLF4J + Log4j和 SLF4J + Logback
具体的使用,参考:http://cammsia.javaeye.com/blog/645080