分析 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 创建对话框中,单击蓝色的“?”图标(右上角),或直接打开文件“试用最新发布的 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 生成的日志文件的主要内容,如果未能解决你的问题,请参考以下文章