Log - slf4j+logback(一) - 几种日志区别
几种日志的区别
- commons-logging
apache最早提供的日志的门面接口。避免和具体的日志方案直接耦合。类似于JDBC的api接口,具体的的JDBC driver实现由各数据库提供商实现。通过统一接口解耦,不过其内部也实现了一些简单日志方案。 -
Log4j
Logging for Java,经典的一种日志解决方案。内部把日志系统抽象封装成Logger、appender、pattern等实现。我们可以通过配置文件轻松的实现日志系统的管理和多样化配置。 -
slf4j
全称为Simple Logging Facade for Java。 是对不同日志框架提供的一个门面封装。可以在部署的时候不修改任何配置即可接入一种日志实现方案。和commons-loging类似。个人感觉设从计上更好一些,没有commons那么多潜规则。同时有两个额外特点:①能支持多个参数,并通过{}占位符进行替换,避免老写logger.isXXXEnabled这种无奈的判断,带来性能提升见;②OSGI机制更好兼容支持。 -
logback
作为一个通用可靠、快速灵活的日志框架,将作为Log4j的替代和slf4j组成新的日志系统的完整实现。具有极佳的性能,在关键路径上执行速度是log4j的10 倍,且内存消耗更少。 -
Log4j2
Log4j2是Log4j的升级版,与之前的版本Log4j 1.x相比、有重大的改进,在修正了Logback固有的架构问题的同时,改进了许多Logback所具有的功能。
slf4j和commons-logging是一种抽象接口,Log4j、Log4j2和logback是它们的实现,在实际使用中,一般选择slf4j+Log4j2或者slf4j+logback。

浙公网安备 33010602011771号