分析 Log4j 生成的日志文件

Posted

技术标签:

【中文标题】分析 Log4j 生成的日志文件【英文标题】:Analyzing Log Files Generated by Log4j 【发布时间】:2018-02-19 01:16:53 【问题描述】:

我正在尝试寻找一种工具来分析由 log4j 生成并最终使用 Apache Chainsaw 的一堆日志文件。不幸的是,我找不到足够的文档来帮助如何使用它。我所能做的就是只查看一个日志文件的结果。

有谁知道如何同时加载多个文件并在一个选项卡中查看它们?

任何有用的文档?

还有其他工具吗?

谢谢

【问题讨论】:

【参考方案1】:

您可以使用LogMX。使用免费版,进入“File”>“Configure Log Parsers...”,点击右侧的“+”绿色按钮创建 Parser,然后点击选项卡“Log4j/Logback pattern”选项卡,然后粘贴您的 Log4j 模式(您在 log4j 配置文件中指定的模式,通常类似于“%d %level [%thread] %c - %m”)

LogMX 可以打开多个日志文件并在一个合并视图中显示它们的内容:

如果所有文件都在同一个目录中(本地或远程),只需转到“文件”>“打开日志...”,然后选中底部的“合并”选项卡

如果所有文件不在同一个目录中,请转到“文件”>“在合并视图中打开多个日志”,然后为每个要打开的文件单击右侧的“+”绿色按钮包括

如果 LogMX 中已经加载了所有文件,您可以使用“工具”>“合并日志...”

【讨论】:

您好,我一直在尝试在 LogMX 中加载由 log4js 生成的 Solr 日志文件,但由于找不到合适的日志解析器而失败。当我使用 pattren "%maxLen%dyyyy-MM-dd HH:mm:ss.SSS %-5p (%t) [%Xcollection %Xshard %Xreplica %Xcore] %c1. %m%notEmpty =>%exshort10240%n" 创建新的日志解析器并打开 solr.log 文件时,它只显示纯文本。我是新手,请分享提示或任何帮助链接,因为我找不到使用 LogMX 的在线帮助。 @MyO 此模式应该在 LogMX 中工作:%dyyyy-MM-dd HH:mm:ss.SSS %-5p (%t) [%mxcollection %mxshard %mxreplica %mxcore] %c1. %m 如果不能,请在此处发布您的日志示例! 感谢@xav 它有效。但是你能解释一下为什么用 %mx 代替 %X。我在哪里可以找到有关此的详细信息以了解更多信息? @MyO :它也适用于 %X,但 LogMX 中的列将命名为“core (MDC)”。因此,为了避免在每个 %X 列上使用后缀“(MDC)”,您可以改用 %mx。您可以在 LogMX 帮助中阅读有关此语法的更多信息:在 Log4j Parser 创建对话框中,单击蓝色的“?”图标(右上角),或直接打开文件“/help/log4j-patterns.html【参考方案2】:

试用最新发布的 Apache Chainsaw - http://logging.apache.org/chainsaw/2.x/

Chainsaw 配置屏幕提供了直接从 log4j xml 配置文件解析本地日志文件的选项(使用来自 log4j 配置文件选项的 fileappender 条目),或者自己指定 logFormat 和日志文件并让 Chainsaw 自动开始解析日志(处理日志文件选项)。

Chainsaw 还可以使用 VFSLogFilePatternReceiver 通过 ssh 远程解析和跟踪可用的日志文件 - 请参阅欢迎选项卡、查看示例接收器配置、VFSLogFilePatternReceiverNoUserInfoPrompt 示例。

如果您使用 Log4j2,将事件加载到 Chainsaw 会更容易 - 只需启用广告商并在附加程序端添加 jmdns.jar - 请参阅 http://logging.apache.org/log4j/2.x/manual/configuration.html#ChainsawSupport

【讨论】:

我也尝试使用 Chainsaw 处理 solr.log 文件,但它在任何地方都没有帮助。内置教程充满了 TODO 部分。我是一个新手,不知道如何为它创建接收器或在其示例接收器文件中放入什么。如果它是为 log4js 制作的,它应该开箱即用地读取 log4js 日志文件。是否有现成的接收器可用于 solr 或任何地方的详细帮助?

以上是关于分析 Log4j 生成的日志文件的主要内容,如果未能解决你的问题,请参考以下文章

多进程log4j日志混乱问题分析

log4j每日生成日志的问题

如何将Hibernate生成的SQL语句打印到日志文件

数据库异常信息为啥没有写入log4j日志文件中

对log4j产生的日志文件进行监控

log4j日志文件指定大小问题