解析log4j日志文件

9
我们有几个应用程序使用log4j进行日志记录。我需要让log4j解析器工作,这样我们就可以合并多个日志文件并对它们进行自动分析。我不想重复造轮子,所以有没有人能指点一下一个像样的现成解析器?如果可以,我已经有log4j转换模式了。
如果没有,我就必须自己动手了。
6个回答

9
我没有意识到Log4J自带XML appender。
解决方法是:在日志配置文件中指定一个XML appender,将该输出XML文件作为实体包含到格式良好的XML文件中,然后使用您喜欢的技术解析XML。
其他方法存在以下限制:
- Apache Chainsaw - 不够自动化。 - jdbc - 在高性能分布式应用中性能较差。

3

写一个可以解析log4j xml的工作配置有一些问题。 - undefined
OLV无法自动化。请改用xml解析器工具。 - undefined
我认为OLV解决方案有很大的开销。 - undefined

2
你所寻找的被称为SawMill,或者类似于它的东西。

1

Log4j日志文件并不适合解析,它们过于复杂和无结构。我相信有第三方工具可以做到这一点(例如Sawmill)。

如果您需要对日志执行自动化的定制分析,则应考虑记录到数据库中并进行分析。JDBC附带了JdbcAppender,它将所有消息附加到您选择的数据库中,但它会影响性能,并且有点不稳定。然而,在互联网上还有其他类似的替代品(比如this one)。


0

xmlstarlet是在自动化优先的情况下解析log4j日志的绝佳选择。以下是它成为此任务最适合的实用工具的几个关键原因:

  1. XPath支持:xmlstarlet支持XPath,这是一种用于导航和查询XML文档的强大而灵活的语言。在log4j日志的上下文中,这使您能够精确地定位特定的元素和属性。

  2. 命令行界面:它通过命令行操作,易于集成到脚本和自动化工作流中。这对于批处理或定时处理日志文件非常有价值。

  3. 修改和转换:除了解析之外,xmlstarlet还可以用于对XML文档进行修改。在log4j日志中,这意味着您可以编辑或重新格式化日志条目,使其成为日志文件分析和维护的多功能工具。

  4. 兼容性:它适用于多个平台,包括Windows、Linux和macOS,适用于各种环境。

  5. 文档完善:xmlstarlet具有全面且文档完善的功能集,这简化了对其的学习曲线。在涉及自动化时,文档至关重要,因为它确保了脚本的清晰指导。

  6. 社区和支持:作为一个广泛使用的实用工具,xmlstarlet拥有活跃的社区和丰富的在线资源。如果遇到问题或需要帮助进行自动化脚本,您很可能会找到所需的帮助。

对于解析log4j日志,xmlstarlet特别有益,因为log4j日志通常以XML格式进行格式化。借助其功能,自动化变得简单明了,能够高效地管理日志聚合、过滤和警报等任务。

最终,如果您正在寻找一个可靠且强大的解析log4j日志的解决方案,并且需要自动化能力,那么xmlstarlet应该是您优先考虑的选择。


-1
您可以使用Log4j的Chainsaw V2处理各种日志文件并将它们收集到一个表中,然后将这些事件输出为xml或使用Chainsaw内置的基于表达式的过滤、搜索和着色支持来切割和分析日志。
步骤: - 启动Chainsaw V2 - 通过从欢迎选项卡复制示例配置文件来创建一个chainsaw配置文件 - 为要处理的每个日志文件定义一个LogFilePatternReceiver“插件”条目 - 使用该配置启动Chainsaw - 每个日志文件都将作为单独的选项卡显示在UI中 - 暂停chainsaw-log选项卡并清除该选项卡中的事件 - 创建一个新选项卡,通过转到“视图,创建自定义表达式日志面板”菜单项并在框中输入“level>= DEBUG”来聚合来自各个选项卡的事件。它将创建一个包含所有级别>= debug的选项卡中的事件的新选项卡(这就是为什么您清除了chainsaw-log选项卡)。
您可以从教程(可从帮助菜单中获取)中获得用于过滤、着色和搜索的表达式语法概述。

如果您不想使用Chainsaw,可以尝试类似的方法——启动一个简单应用程序,该应用程序不记录日志,但会加载一个包含您为Chainsaw配置定义的“插件”条目的log4j.xml配置文件,同时还定义了一个具有xmllayout的FileAppender——所有接收到的事件都将发送到单个appender。


这个工具已经过时了 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接