gpt4 book ai didi

java - 你觉得 java.util.logging 足够了吗?

转载 作者:IT老高 更新时间:2023-10-28 20:43:18 26 4
gpt4 key购买 nike

根据标题,您是否发现默认的 Java 日志框架足以满足您的需求?

您是否使用其他日志记录服务,例如 log4j还是其他人?如果是这样,为什么?我想听听您对不同类型项目的日志记录要求的任何建议,以及何时集成框架实际上是必要和/或有用的。

最佳答案

java.util.logging (jul) 从一开始就没有必要。无视就好。

7 月本身有以下缺点:

  • 在 Java 1.4 中引入 jul 时,已经有一个广泛使用的完善的日志框架:LOG4J
  • 预定义的日志级别为:SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST。我不会告诉你我个人对这些预定义级别的看法,以使这个答案保持半客观。
  • 可以定义其他级别。 jul 最多支持 4G 不同的日志级别,恕我直言,这有点矫枉过正。少即是多。
  • 最重要的一点:如果你敢定义自己的日志级别,很可能会遇到内存泄漏问题!
    随意在这里阅读有关此效果的信息:

    即使您不打算使用自定义关卡,这也是一本非常有趣的书,顺便说一句,因为问题是一个普遍存在的问题,根本不只适用于 jul。

  • 它位于 java.* 命名空间中,因此无法在运行时交换实现。这有效地防止了将其桥接到 SLF4J,就像在 commons.logging 和 LOG4J 的情况下一样。为 jul 完成桥接的方式会对性能产生影响。这使得 jul 成为目前最不灵活的日志框架。
  • 通过引入 jul,Sun 隐含地将其定义为“标准的 java 日志框架”。这导致了一个普遍的误解,即“优秀的 Java 公民”应该在他们的库或应用程序中使用 jul。
    情况正好相反。
    如果您使用 commons.logging 或 LOG4j,您将能够通过桥接到 SLF4J 来交换实际使用的日志框架(如果需要)。这意味着使用 commons.logging、LOG4J 或 SLF4J 的库都可以记录到相同的日志记录目标,例如文件。

我个人建议使用 SLF4J + Logback用于所有记录目的的组合。这两个项目都由 LOG4J 背后的人 Ceki Gülcü 协调。
SLF4J 是 commons.logging 的一个有值(value)的(但非官方的,因为它不是来自同一组)继任者。它比 CL 问题少,因为它静态地解决了实际使用的日志记录后端。此外,它拥有比 CL 更丰富的 API。
另一方面,Logback 是 LOG4J 的(非)官方继任者。它原生实现了 SLF4J,因此没有任何包装器造成的开销。

现在如果你仍然认为我应得的,你可以投反对票。 ;)

关于java - 你觉得 java.util.logging 足够了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/607863/

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