gpt4 book ai didi

java - Apache Commons Logging 的运行时发现算法有什么问题

转载 作者:IT老高 更新时间:2023-10-28 13:03:43 29 4
gpt4 key购买 nike

Dave Syer (SpringSource) writes在他的博客中:

Unfortunately, the worst thing about commons-logging, and what has made it unpopular with new tools, is also the runtime discovery algorithm.

为什么?它的运行时发现算法有什么问题?性能?

最佳答案

Why? What is the issue with its runtime discovery algorithm? Performance?

不,不是性能,而是 classloader pain . JCL 发现过程依赖于类加载器黑客来在运行时找到日志框架,但这种机制会导致许多问题,包括意外行为、难以调试导致复杂性增加的类加载问题。 Ceki(Log4J、SLF4J 和 Logback 的作者)在 Think again before adopting the commons-logging API 中很好地捕捉到了这一点。 (其中还提到了使用 JCL 观察到的内存泄漏问题)。

这就是创建使用静态绑定(bind)的 SLF4J 的原因。

Ceki 作为 SLF4J 的作者,您可能会认为他的文章有偏见,但相信我,事实并非如此,他提供了大量引用资料(证据)来证明他的观点。

总结一下:

  • 是的,众所周知,JCL 已损坏,最好远离它。
  • 如果您想使用日志外观(并非所有项目都需要),请使用 SLF4J。
  • SLF4J 为仍在使用 JCL(如 Spring)的框架提供了 JCL 到 SLF4J 的桥梁:(
  • 我发现 Log4J 的继任者 Logback 是一个出色的日志记录实现。
  • Logback 原生实现了 SLF4J API。这意味着如果你使用 Logback,你实际上是在使用 SLF4J API。

另见

关于java - Apache Commons Logging 的运行时发现算法有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3222895/

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