Logger.getLogger(className)和LogFactory.getLog(className)之间的区别?

Sha*_*dne 17 java logging log4j

我知道它的包装差异

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

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

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

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

任何帮助表示赞赏.

Tom*_*icz 10

是的,共享记录是在假设抽象您从底层的日志框架门面API(在实践中之间存在着选择java.util.logging),这样就可以从一个切换到另一个不碰代码-只是通过切换库可在CLASSPATH.

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

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