【问题标题】:Best XML format for log events in terms of tool support for data mining and visualization?就数据挖掘和可视化的工具支持而言,日志事件的最佳 XML 格式是什么?
【发布时间】:2010-10-02 16:39:46
【问题描述】:

我们希望能够从我们的 Java 应用程序创建日志文件,这些文件适合以后由工具处理,以帮助调查错误和收集性能统计信息。

目前我们使用传统的“日志内容可能会或可能不会被展平为文本形式并附加到日志文件中”,但这最适用于人类读取的少量信息。

经过仔细考虑,最好的办法是将日志事件作为 XML sn-ps 存储在文本文件中(然后像任何其他日志文件一样处理),然后使用适当的工具将它们下载到机器上进行后期处理.

我想使用尽可能广泛支持的 XML 格式,现在我正处于“研究-然后-制定-决策”阶段。对于 XML 格式和工具方面的任何帮助,我将不胜感激,并且我很乐意编写胶水代码来获得我需要的东西。

到目前为止我发现了什么:

log4j XML 格式:由链锯和 Vigilog 支持。 莉莉丝 XML 格式:莉莉丝支持

未经调查的工具:

Microsoft Log Parser:显然支持 XML。 OS X 日志查看器:

另外http://www.loganalysis.org/sections/parsing/generic-log-parsers/上还有很多工具

有什么建议吗?

【问题讨论】:

    标签: java logging visualization data-mining error-logging


    【解决方案1】:

    很遗憾,我无法为您提供您正在寻找的答案,但我想提醒您在记录到 XML 时需要考虑的一些事项。例如:

    <log>
     <msg level="info">I'm a log message</msg>
     <msg level="info">I'm another message</msg>
     <!-- maybe you won't even get here -->
     <msg level="fatal">My server just ate a flaming death
    

    在上述潜在 XML 日志的 sn-p 中,您可以看到记录到 XML 的最大缺点。当发生灾难性故障时,您的日志格式会损坏,因为它需要结束标记。但是,如果您使用的是解析主日志输出的程序,这应该不是什么大问题。

    【讨论】:

    • 经过仔细考虑,我发现这是可以接受的风险。如果你崩溃了,无论如何你都需要人工干预,这也可能包括添加结束标签。
    • 我们仅在应用程序会话关闭时(正常退出或未处理的致命异常)在 xml 格式中附加一个结束标记。如果您希望将日志保存在单个文件中,则结束标签可以在启动时删除。 (打开没有结束标记的日志文件,意味着应用程序未正确终止或应用程序的另一个实例已打开)
    • ^^ 分心并错过了我的 5 分钟编辑窗口 - 我们仅在应用会话关闭时(正常退出或致命错误)将结束标记附加到 xml 格式.. 如果您想保留您的日志在一个文件中,结束标记可以在启动时删除。 (打开没有结束标记的日志文件,意味着应用程序未正确终止或应用程序的另一个实例已打开)
    【解决方案2】:

    log4j 的优点之一是它为自定义日志格式和写入位置提供了很好的可能性。

    因此,我不会选择一些日志文件格式,而是选择一些允许更改格式并允许将日志直接获取到某个程序的日志库。

    【讨论】:

      【解决方案3】:

      Lilith 日志查看器似乎包含一个 XML 格式,非常适合处理 logback 中可用的额外工具,而不仅仅是 log4j 的东西。

      这是 - 目前 - 迄今为止最好的选择 :)


      我将 log4j xmllayout 类改编为 logback,它适用于电锯。


      由于我找不到合适的日志查看器来可视化事件信息(而不仅仅是在表格中显示所有事件),我现在决定创建一个非常简洁的 xml 布局,其中包含基于机器可解析信息的然后可以由 Microsoft LogParser 将其后处理为我需要的任何格式。

      【讨论】:

        【解决方案4】:

        我建议您考虑 logback-access 参加活动。

        除此之外,任何使用 JMX 的东西,因为它是为了匹配 SNMP 的功能集。

        【讨论】:

        • 我知道 logback-access 模块,但你建议我如何使用它?
        【解决方案5】:

        如果您正在定义自己的 XML 日志文件编写方式,则无需担心有结束和开始标签即可生成有效的 XML。 Elijah 的回答是正确的,因为如果您想创建 XML document,您确实会遇到问题,但这并不是必须的。 W3 标准还定义了 XML Entities(参见 W3 的 XML 1.0 规范的第 4.3 节,第二版,遗憾的是我无法为您提供链接,因为我没有足够的积分),这将更合适用于日志样式的连续附加到文件而不重写文件的一部分。然后,如果您需要使用实际的 XML 文档而不是 XML 实体,则可以创建一个引用的 XML 包装器文档(参见 http://www.perlmonks.org/?node_id=217788#217797 示例)

        【讨论】:

          猜你喜欢
          • 2015-04-30
          • 1970-01-01
          • 2014-10-08
          • 2010-12-18
          • 1970-01-01
          • 1970-01-01
          • 2015-03-27
          • 2016-11-14
          • 1970-01-01
          相关资源
          最近更新 更多