18

我知道它的包装差异

1)org.apache.log4j.Logger logger = Logger.getLogger(clazz);

2)org.apache.commons.logging.Log log = LogFactory.getLog(clazz);

第一个使用记录器 via log4j,第二个使用commons.logging. 我们有一个巨大的项目,在某些类中记录器是使用配置的log4j,在某些情况下是它的commons.logging.

我确实找到了一个 log4j 属性文件。是否有类似的属性文件commons.logging?我在哪里配置公共日志记录?我无法看到由commons-logging.

任何帮助表示赞赏。

4

1 回答 1

11

是的,commons-logging 是一个外观 API,它被假定为将您从底层日志框架中抽象出来(实际上在java.util.logging类路径。

不幸的是,由于一些设计错误,它在复杂的类加载环境(如应用程序服务器)中存在问题。目前它已被有效取代。

在您的情况下,我建议坚持使用一个 API - Log4J 或 commons-logging,即使 commons-logging 将(很可能)委托给 log4J。您也可以迁移到使用 SLF4J 并安装桥接 API,但这稍微高级一些。

于 2012-04-20T13:07:55.803 回答