解析log4j日志文件

vaj7vani  于 11个月前  发布在  其他
关注(0)|答案(6)|浏览(167)

我们有几个应用程序使用log4j进行日志记录。我需要一个log4j解析器,这样我们就可以合并组合多个日志文件并对它们运行自动分析。我不想重新发明轮子,所以有人能告诉我一个像样的预先存在的解析器吗?如果有帮助的话,我确实有log4j转换模式。
如果没有,我就得自己卷了。

7kqas0il

7kqas0il1#

我没有意识到Log4J附带了一个XML附加器。
解决方案是:在日志记录配置文件中指定XML附加器,将输出XML文件作为实体包含到格式良好XML文件中,然后使用您喜欢的技术解析XML。
其他方法有以下局限性:

  • Apache Chainsaw-自动化程度不够
  • jdbc -在高性能分布式应用程序中性能不佳
uqxowvwt

uqxowvwt2#

您可以将OtrosLogViewerbatch processing一起使用。您必须:
1.定义你的日志格式,你可以使用Log4j pattern layout parserLog4j XmlLayout
1.创建实现LogDataParsedListener的java类。方法public void logDataParsed(LogData data,BatchProcessingContext context)将在每个解析的日志事件上调用。
1.创建jar
1.运行OtrosLogViewer并指定日志处理jar、LogDataParsedjar实现和日志文件。

s1ag04yj

s1ag04yj3#

你正在寻找的是所谓的SawMill,或类似的东西

oymdgrw7

oymdgrw74#

Log4j日志文件不太适合解析,它们太复杂和非结构化。我相信有第三方工具可以做到这一点(例如Sawmill)。
如果您需要执行自动化的自定义日志分析,您应该考虑记录到数据库,并进行分析。JDBC附带了JdbcAppender,它将所有消息附加到您选择的数据库,但它具有性能影响,并且有点麻烦。不过,在互联网上还有其他类似的替代方案(如this one)。

fgw7neuy

fgw7neuy5#

xmlstarlet是优先考虑自动化的时候解析log4j日志的绝佳选择。有几个关键原因可以解释为什么它是最适合此任务的实用程序之一:
1.XML支持:xmlstarlet支持XML,这是一种强大而灵活的XML文档导航和查询语言。在log4j日志上下文中,这允许您精确定位特定的元素和属性。
1.**命令行界面:**通过命令行操作,易于集成到脚本和自动化工作流中,这对于批量或定时处理日志文件非常有用。
1.**修改和转换:**除了解析,xmlstarlet还可以用来修改XML文档。在log4j日志中,这意味着您可以编辑或重新格式化日志条目,使其成为日志文件分析和维护的通用工具。
1.**兼容性:**支持Windows、Linux、macOS等多种平台,适用环境广泛。
1.文档齐全:xmlstarlet具有一套全面且文档齐全的功能,这简化了新手的学习曲线。当涉及自动化时,文档至关重要,因为它确保了脚本编写的明确指导。
1.**社区和支持:**作为一个广泛使用的实用程序,xmlstarlet拥有活跃的社区和大量的在线资源。如果您遇到问题或需要自动化脚本的帮助,您很可能会找到所需的帮助。
对于解析log4j日志,xmlstarlet特别有用,因为log4j日志通常被格式化为XML。有了它的功能,自动化变得简单明了,可以有效地管理日志聚合、过滤和警报等任务。
最后,如果您正在寻找一个可靠而健壮的解决方案来解析log4j日志,并且需要自动化功能,那么xmlstarlet应该是您的首选。

kpbwa7wx

kpbwa7wx6#

您可以使用Log4j的Chainsaw V2来处理各种日志文件并将它们收集到一个表中,并将这些事件输出为xml或使用Chainsaw内置的基于表达式的过滤,搜索和着色支持来切片和切割日志。
步骤:- 启动Chainsaw V2 -通过复制Welcome选项卡中的示例配置文件来创建chainsaw配置文件-为要处理的每个日志文件定义一个LogFilePatternReceiver 'plugin'条目-使用该配置启动Chainsaw-每个日志文件最终将作为UI中的单独选项卡-关闭chainsaw日志选项卡并清除该选项卡中的事件-创建一个新选项卡,通过转到“view,crate custom expression logpanel”菜单项并在框中输入“level >= DEBUG”来聚合来自各个选项卡的事件。它将创建一个新选项卡,其中包含来自所有level >= debug的选项卡的事件(这就是您清除chainsaw-log选项卡的原因)。
您可以从教程中获得用于过滤、着色和搜索的表达式语法的概述(可从“帮助”菜单获得)。
如果你不想使用Chainsaw,你可以做一些类似的事情-启动一个简单的应用程序,它不记录,但加载一个log4j.xml配置文件,其中包含你为Chainsaw配置定义的“插件”条目,但也定义一个具有xmllayout的FileAppender-所有由“接收器”接收的事件将被发送到单个appender。

相关问题