【问题标题】:What are the latest options in Java logging frameworks? [closed]Java 日志框架的最新选项是什么? [关闭]
【发布时间】:2010-03-28 16:33:07
【问题描述】:

这个问题会定期被问到,但我一直觉得现有的 Java 日志框架过于复杂和过度设计,我想看看有什么新的。

我目前的项目有一个更关键的问题,因为我们已将 JSON 标准化为人类可读的数据编码,而且我见过的大多数日志框架都需要 XML。我真的宁愿避免将 JSON 用于 95% 的应用程序配置,而将 XML 用于其余部分,因为日志框架(说实话,我讨厌将 XML 用于文本标记以外的任何东西,这是它最初的预期目的)。

是否有任何热门的新 Java 日志记录框架得到积极维护、相当强大、具有 maven 存储库、无需重新启动应用即可重新配置并且不将您绑定到 XML?

【问题讨论】:

  • 谁能想到有一天人们会积极寻找不“将您与 XML 绑定”的软件?
  • @David Leonard:几乎所有已经存在足够长的时间的人都认为它只是另一个银弹。这门学科还不成熟,所以它在不断发展。等够多年,你学到的一切不仅会变得过时,而且会被证明是次优的。

标签: java logging frameworks


【解决方案1】:

您有 3 个选项:

  • Log4J
  • java.util.logging (JUL)
  • Logback(Log4J的继承者)

现在,让我们看看它们如何满足您的要求:

  1. 积极维护
  2. 相当强大
  3. 有一个 Maven 仓库
  4. 无需重新启动应用即可重新配置
  5. 不要将您绑定到 XML

log4j

  1. ,未积极维护
  2. 是的 -
  3. 是的 -
  4. Yes -
  5. Yes(使用 Java 属性文件,请参阅配置)。

java.util.logging(七月)

  1. 我会说是的 -
  2. 由您自行决定 -
  3. 不适用 -
  4. 是(通过 JMX 或 LogManager#readConfiguration() -
  5. 是(使用属性文件)

回退

  1. 是的 -
  2. 是的 -
  3. 是的 -
  4. 是的,通过JMXautoScan -
  5. Configuration files in XML or Groovy

看起来你必须做出一些让步(或者找到一个我不知道的框架)。我会选择Logback,这就是现在发生的事情。

【讨论】:

  • Logback 的配置可以用 Groovy 编写,放宽了对基于 XML 的配置的严格要求。他们还计划在未来支持 Scala。
  • FWIW:“未积极维护”log4j 1.x 有一个后续 Apache log4j 2.x,在撰写本文时正在积极维护。 Issue Tracker
  • 我认为这应该修改为表格数据
【解决方案2】:

logback 不是最新的吗?

【讨论】:

    【解决方案3】:

    SLF4J 是我所知道的最新和最伟大的。

    当然,配置 log4j 所需的 XML 不能被认为是压迫性的。一般来说,您可能会反对 XML 配置,但即便如此,这种情况也在发生变化。与大多数其他框架一样,Spring 提供了使用 XML 或注释的选项。我认为反对 XML 标记以外的任何东西都太过分了。 Ant 和 NANT 是否应该因为选择了 XML 而关闭?我认为不会。

    【讨论】:

    • SLF4J 并不是一个真正的日志框架,只是一个外观。
    • 提供的日志框架列表在我看来相当详尽。它包括 java.util.logging。 OP 可以免费插入最符合需要的那个。
    • 是的,你需要插入一个日志框架(jul、log4j、logback),sfl4j只是一个门面。
    【解决方案4】:

    虽然log4j 的常用配置方法是 xml,但您也可以通过编程方式对其进行配置,这意味着您可以使用任何您想要的配置系统(也可以在运行时重新配置)。

    【讨论】:

      【解决方案5】:

      您可能想查看我们的 Java 日志工具 SmartInspect(它是商业的)。 SmartInspect 得到积极维护,可以使用两行代码进行配置,并支持仅包含名称 = 值对(无 XML :))的配置文件。 SmartInspect 还可以在配置文件发生更改时自动重新加载配置文件 - 这是实时配置更改和生产系统的有用功能。 SmartInspect 还附带一个图形日志分析和监控工具,您可能会发现它很有用:


      (来源:gurock.com

      【讨论】:

        猜你喜欢
        • 2012-03-04
        • 2010-09-06
        • 2010-10-22
        • 2010-11-18
        • 2012-03-16
        • 2011-01-04
        • 2012-01-12
        • 1970-01-01
        相关资源
        最近更新 更多