gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 22:41:17 24 4
gpt4 key购买 nike

我知道这是包的区别

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 生成的日志。

感谢任何帮助。

最佳答案

是的,commons-logging 是一个 Facade API,旨在将您从底层日志框架中抽象出来(实际上可以在 java.util.logging 之间进行选择),以便您可以在不触及代码的情况下从一个切换到另一个 - 只需切换 CLASSPATH 上可用的库。

不幸的是,由于一些设计错误,它在复杂的类加载环境(如应用程序服务器)中出现了问题。目前它实际上被 取代了.

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

关于java - Logger.getLogger(className) 和 LogFactory.getLog(className) 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10246708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com