我们有几个应用程序使用log4j进行日志记录。我需要一个log4j解析器,这样我们就可以合并组合多个日志文件并对它们运行自动分析。我不想重新发明轮子,所以有人能告诉我一个像样的预先存在的解析器吗?如果有帮助的话,我确实有log4j转换模式。如果没有,我就得自己卷了。
7kqas0il1#
我没有意识到Log4J附带了一个XML附加器。解决方案是:在日志记录配置文件中指定XML附加器,将输出XML文件作为实体包含到格式良好XML文件中,然后使用您喜欢的技术解析XML。其他方法有以下局限性:
uqxowvwt2#
您可以将OtrosLogViewer与batch processing一起使用。您必须:1.定义你的日志格式,你可以使用Log4j pattern layout parser或Log4j XmlLayout1.创建实现LogDataParsedListener的java类。方法public void logDataParsed(LogData data,BatchProcessingContext context)将在每个解析的日志事件上调用。1.创建jar1.运行OtrosLogViewer并指定日志处理jar、LogDataParsedjar实现和日志文件。
s1ag04yj3#
你正在寻找的是所谓的SawMill,或类似的东西。
oymdgrw74#
Log4j日志文件不太适合解析,它们太复杂和非结构化。我相信有第三方工具可以做到这一点(例如Sawmill)。如果您需要执行自动化的自定义日志分析,您应该考虑记录到数据库,并进行分析。JDBC附带了JdbcAppender,它将所有消息附加到您选择的数据库,但它具有性能影响,并且有点麻烦。不过,在互联网上还有其他类似的替代方案(如this one)。
JdbcAppender
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应该是您的首选。
xmlstarlet
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。
6条答案
按热度按时间7kqas0il1#
我没有意识到Log4J附带了一个XML附加器。
解决方案是:在日志记录配置文件中指定XML附加器,将输出XML文件作为实体包含到格式良好XML文件中,然后使用您喜欢的技术解析XML。
其他方法有以下局限性:
uqxowvwt2#
您可以将OtrosLogViewer与batch processing一起使用。您必须:
1.定义你的日志格式,你可以使用Log4j pattern layout parser或Log4j XmlLayout
1.创建实现LogDataParsedListener的java类。方法public void logDataParsed(LogData data,BatchProcessingContext context)将在每个解析的日志事件上调用。
1.创建jar
1.运行OtrosLogViewer并指定日志处理jar、LogDataParsedjar实现和日志文件。
s1ag04yj3#
你正在寻找的是所谓的SawMill,或类似的东西。
oymdgrw74#
Log4j日志文件不太适合解析,它们太复杂和非结构化。我相信有第三方工具可以做到这一点(例如Sawmill)。
如果您需要执行自动化的自定义日志分析,您应该考虑记录到数据库,并进行分析。JDBC附带了
JdbcAppender
,它将所有消息附加到您选择的数据库,但它具有性能影响,并且有点麻烦。不过,在互联网上还有其他类似的替代方案(如this one)。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
应该是您的首选。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。