Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在数据挖掘和可视化工具支持方面,日志事件的最佳XML格式?_Java_Logging_Visualization_Data Mining_Error Logging - Fatal编程技术网

Java 在数据挖掘和可视化工具支持方面,日志事件的最佳XML格式?

Java 在数据挖掘和可视化工具支持方面,日志事件的最佳XML格式?,java,logging,visualization,data-mining,error-logging,Java,Logging,Visualization,Data Mining,Error Logging,我们希望能够从Java应用程序中创建日志文件,该文件适合以后通过工具进行处理,以帮助调查bug和收集性能统计数据 目前,我们使用传统的“日志内容,它可能会也可能不会被压缩成文本形式并附加到日志文件中”,但这对于少量人类读取的信息最有效 经过仔细考虑,最好的办法是将日志事件作为XML片段存储在文本文件中(然后将其与任何其他日志文件一样处理),然后使用适当的工具将其下载到机器上进行后期处理 我希望使用尽可能广泛支持的XML格式,目前我正处于“研究然后做出决策”阶段。我非常感谢在XML格式和工具方面的

我们希望能够从Java应用程序中创建日志文件,该文件适合以后通过工具进行处理,以帮助调查bug和收集性能统计数据

目前,我们使用传统的“日志内容,它可能会也可能不会被压缩成文本形式并附加到日志文件中”,但这对于少量人类读取的信息最有效

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

我希望使用尽可能广泛支持的XML格式,目前我正处于“研究然后做出决策”阶段。我非常感谢在XML格式和工具方面的任何帮助,我也很乐意编写胶水代码来满足我的需要

到目前为止,我发现:

log4jxml格式:由链锯和Vigilog支持。 Lilith XML格式:由Lilith支持

未调查的工具:

Microsoft日志解析器:显然支持XML。 OS X日志查看器:

另外,还有很多工具


遗憾的是,我不能给你你正在寻找的答案,但是我想提醒你在登录到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的最大缺点。当发生灾难性故障时,您的日志格式将被破坏,因为它需要关闭标记。但是,如果您使用的是一个解析主日志输出的程序,这应该不会有太大问题。

log4j中的一个优点是,它提供了定制日志格式和写入位置的良好可能性


因此,与其选择某种日志文件格式,我会选择一些日志库,它允许更改格式,也允许将日志直接发送到某个程序。

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

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


我将log4jxmllayout类修改为logback,它与链锯一起工作


因为我还没有找到一个能够可视化事件信息的合适的日志查看器(而不是仅仅在表中显示所有事件)现在,我已经决定创建一个非常简洁的xml布局,其中包含基于上述内容的机器可解析信息,然后可以由Microsoft LogParser将其后处理为我需要的任何格式除此之外,任何使用JMX的东西,因为它是为了匹配SNMP的功能集而制作的。

如果您定义自己的XML日志文件写入,您不需要担心有一个关闭和打开标记来生成有效的XML。Elijah的答案是正确的,因为如果您想要创建XML文档,您确实会遇到问题,但这不是必须的。W3标准还定义了XML实体(请参见W3的XML 1.0规范第二版第4.3节,很遗憾,我无法为您链接到该节,因为我没有足够的点),这将更适合于日志样式的连续附加到文件,而无需重写部分。如果需要使用实际的XML文档而不是XML实体(请参见示例),则可以创建引用XML包装文档。

我知道logback访问模块,但您建议如何使用它?经过仔细考虑后,我发现这是一个可接受的风险。如果崩溃,您仍然需要手动干预,这可能还包括添加关闭标记。只有当应用程序会话关闭时(正常退出或未处理的致命异常),我们才会在xml格式中附加关闭标记。。如果希望将日志保存在单个文件中,可以在启动时删除关闭标记。(在没有关闭标记的情况下打开日志文件,意味着应用程序未正确终止或应用程序的另一个实例已打开)^^分心并错过了我的5分钟编辑窗口-我们仅在应用程序会话关闭(正常退出或致命错误)时才将关闭标记附加到xml格式。。如果希望将日志保存在单个文件中,则可以在启动时删除关闭标记。(在没有关闭标记的情况下打开日志文件,意味着应用程序未正确终止或应用程序的另一个实例已打开)