gpt4 book ai didi

java - Hibernate 使用 apache commons 日志记录和 slf4j - 为什么需要 2 个日志记录抽象层?

转载 作者:行者123 更新时间:2023-12-04 04:54:56 25 4
gpt4 key购买 nike

我在 java 日志库世界中没有那么丰富的经验。
我开始使用 hibernate,然后发现我需要包含 apache commons 日志记录库和 sl4j 库。
实际的日志库是 log4j - 所以我也包含了那个库。

在阅读了 apache commons logging 和 sl4j libs 之后,我明白它们都代表了一个抽象层,用于使用另一个库(在我的例子中是 log4j)进行日志记录。

为什么需要 2 个抽象级别?

最佳答案

在完美的世界中,这些多个日志 API 是不需要的,但不幸的是,没有明确的标准,因此不同的库(而 Hibernate 是一个具有许多依赖项和子项目的大项目)使用不同的日志 API,并且作为用户,你必须提供所有这些。

准标准是 Log4J,直到 Sun 决定将其自己​​的版本 (java.util.logging) 包含到 JDK 中。这使它成为一场两匹马的竞赛,而 Commons Logging 旨在为两者(以及任何其他人)提供统一的界面。不幸的是,Commons Logging had some short-comings ,所以目前最喜欢的是 SLF4J。 SLF4J 也试图通过为所有其他 API 提供桥梁来帮助清理困惑。

关于java - Hibernate 使用 apache commons 日志记录和 slf4j - 为什么需要 2 个日志记录抽象层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16881168/

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