Log4j是commons-logging还是slf4j的实现?

时间:2014-02-10 21:14:04

标签: log4j slf4j apache-commons-logging

Hy,

我已经读过,commons-logging和slf4j是用于日志记录的“接口或规范”,你必须插入一个实现。但我已经读过你可以使用log4j作为commons-logging和slf4j,所以:log4j同时“实现”commons-logging和slf4j的规范?我不明白

由于

2 个答案:

答案 0 :(得分:1)

SLF4j是一个日志记录外观,可以引入Log4j和commons-logging项目。因此,您使用SLF4j类来执行日志记录,它就像一个外观。在下面,您可以使用Log4j或SLF4j支持的任何其他日志记录系统。这样做的好处是SLF4j让您无法与特定的日志记录系统联系起来。

答案 1 :(得分:1)

Sl4j和commons-logging都是底层日志记录实现的外观,例如log4j或JDK日志记录。它们通过拥有自己的日志记录接口,多个实现,每个实现包装具体日志框架的记录器接口来工作。因此,在log4j示例中,Slf4j的org.slf4j.Logger接口有一个包含Log4j org.apache.log4j.Logger的实现,而不是相反。 commons-logging也适用相同的机制。这样就可以根据需要使用Log4j独立,Slf4j或commons-logging。