Java日志框架中有哪些最新选项?

时间:2010-03-28 16:33:08

标签: java logging frameworks

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

我对当前项目有一个更为关键的问题,因为我们将JSON标准化为人类可读的数据编码,而且我见过的大多数日志框架都需要XML。我真的宁愿避免在95%的应用程序配置中使用JSON,而仅仅因为日志记录框架而使用XML(事实上,我讨厌将XML用于除文本标记以外的任何其他目的)。

是否有任何热门的新Java日志框架,这些框架都是主动维护的,功能相当强大,有maven仓库,可以重新配置而无需重新启动应用程序,并且不会将您绑定到XML?

5 个答案:

答案 0 :(得分:20)

您有3个选项:

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

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

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

    1. ,未得到积极维护
    2. 是 -
    3. 是 -
    4. Yes -
    5. Yes(使用Java属性文件,请参阅配置)。
    6. java.util.logging(JUL)

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

        1. 是 -
        2. 是 -
        3. 是 -
        4. 是,通过JMXautoScan -
        5. Configuration files in XML or Groovy
        6. 看起来你必须做出一些让步(或找到一个我不知道的框架)。我会选择Logback,这就是现在发生的事情。

答案 1 :(得分:4)

据我所知,

SLF4J是最新最好的。

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

答案 2 :(得分:4)

最新不是logback吗?

答案 3 :(得分:0)

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

答案 4 :(得分:0)

您可能希望查看我们的Java日志记录工具SmartInspect(它是商业用途)。 SmartInspect是主动维护的,可以配置两行代码,并支持只包含name = value对的配置文件(无XML :))。 SmartInspect还可以在更改时动态地重新加载配置文件 - 这是实时配置更改和生产系统的有用功能。 SmartInspect还附带了一个您可能会觉得有用的图形日志分析和监控工具:

alt text http://www.gurock.com/images/feature/smartinspect-screenshot.png