我们有几个使用log4j进行日志记录的应用程序。我需要让log4j解析器工作,这样我们就可以组合多个日志文件并对它们运行自动分析。我不打算重新发明轮子,所以有人能指出我一个体面的预先存在的解析器吗?如果有帮助,我确实有log4j转换模式。
如果没有,我将不得不自己动手。
答案 0 :(得分:8)
我没有意识到Log4J附带了一个XML appender。
解决方案是:在日志记录配置文件中指定XML appender,将该输出XML文件作为实体包含在格式良好的XML文件中,然后使用您喜欢的技术解析XML。
其他方法有以下限制:
答案 1 :(得分:3)
您可以将OtrosLogViewer与batch processing一起使用。你必须:
答案 2 :(得分:2)
您要找的是SawMill,或类似。
答案 3 :(得分:1)
Log4j日志文件并不适合解析,它们太复杂且非结构化。我相信有第三方工具可以做到(例如Sawmill)。
如果您需要对日志执行自动化的自定义分析,则应考虑记录到数据库并对其进行分析。 JDBC附带JdbcAppender
,它将所有消息附加到您选择的数据库中,但它具有性能影响,并且有点不稳定。但是,在interweb上还有其他类似的替代方案(如this one)。
答案 4 :(得分:0)
你可以使用Log4j的Chainsaw V2来处理各种日志文件并将它们收集到一个表中,然后将这些事件输出为xml或使用Chainsaw内置的基于表达式的过滤,搜索&着色支持切片&骰子日志。
步骤: - 启动Chainsaw V2 - 通过复制欢迎选项卡中提供的示例配置文件来创建链锯配置文件 - 为要处理的每个日志文件定义一个LogFilePatternReceiver'插件'条目 - 使用该配置启动Chainsaw - 每个日志文件最终都将作为UI中的单独选项卡 - 暂停电锯日志选项卡并清除该选项卡中的事件 - 创建一个新选项卡,通过转到“查看,crate自定义表达式logpanel”菜单项并在框中输入“level> = DEBUG”来汇总各个选项卡中的事件。它将创建一个新选项卡,其中包含来自所有选项卡的事件,其中包含级别> = debug(这就是您清除电锯日志选项卡的原因)。
您可以从教程中获得用于过滤,着色和搜索的表达式语法的概述(可从“帮助”菜单中获得)。
如果您不想使用Chainsaw,您可以执行类似的操作 - 启动一个不会记录的简单应用程序,但会加载一个log4j.xml配置文件,其中包含您为Chainsaw配置定义的'plugin'条目,但是还定义了一个带有xmllayout的FileAppender - 'receiver'接收的所有事件都将被发送到单个appender。