2

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

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

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

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

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

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

未经调查的工具:

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

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

有什么建议么?

4

5 回答 5

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

于 2009-01-22T03:36:12.207 回答
1

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

于 2010-05-23T08:23:10.043 回答
0

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

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

于 2009-01-28T16:12:38.957 回答
0

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

它是 - 就目前而言 - 迄今为止最好的选择 :)


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


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

于 2009-02-02T11:33:17.840 回答
0

我建议您考虑对事件进行logback-access

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

于 2009-02-02T12:20:25.640 回答