59

我正在为 log4j 文件生成的日志文件寻找某种分析工具。我正在寻找比grep更先进的东西?您使用什么进行日志文件分析?

我正在寻找以下类型的功能:

  • 该工具应该告诉我给定的日志语句或堆栈跟踪发生了多少次,最好支持某些类型的模式(例如,匹配“用户 [az]* 登录”的日志语句的数量)。
  • 按日志级别(多少 INFO、DEBUG 行)和启动日志消息的类进行细分会很好。
  • 按日期细分(给定时间段内有多少日志语句)
  • 哪些日志行通常一起出现?
  • 支持多个文件,因为我使用的是日志滚动
  • 热点分析:查找是否有某个时间段出现异常多的日志语句
  • 命令行或 GUI 都可以
  • 开源是首选,但我也对商业产品感兴趣

我的 log4j 配置使用带有模式的 org.apache.log4j.PatternLayout%d %p %c - %m%n但可以适用于分析器工具。

4

9 回答 9

17

(免责声明:我是为 Chainsaw V2 做出贡献的开发人员之一)

Chainsaw V2可以通过其对自定义表达式的支持以及使用这些表达式对事件进行着色、搜索和过滤的能力来提供您正在寻找的一些功能。

您 - 可以 - 将多个日志文件加载到 Chainsaw 中(默认情况下,日志文件的所有事件都放置在特定于日志文件的选项卡上)。您还可以定义一个“自定义表达式日志面板”,它将所有选项卡中的事件聚合到与您提供的表达式匹配的新选项卡中 - 类似于数据库“视图”,您可以使用表达式“级别 >= 警告”来收集所有警告,来自任何日志文件的错误和致命消息到单个视图中。

一些可用于着色、搜索或过滤事件的示例表达式:

  • msg like '用户 [az]* 已登录'
  • 味精〜=登录|| 味精〜=注销
  • 级别 > 信息
  • 存在异常
  • 时间戳 <= '2010/04/06 15:05:35'

当前获取“计数”的唯一方法是在“优化焦点”字段中定义一个表达式(匹配该表达式的事件计数将显示在状态栏中)。

即将发布的版本中添加的有用功能之一是表格右侧的可单击栏(类似于 Eclipse 或 Idea 的显示语法错误指示的栏),它将显示整个日志文件的颜色规则和搜索表达式匹配。

当下一个版本的 Chainsaw V2 发布时,我希望你试一试——它是开源的、免费的,我们总是对建议和反馈感兴趣。

于 2010-04-08T04:20:49.250 回答
9

我建议Splunk。它提供了跨大量(TB)日志的快速、类似 Google 的搜索,易于过滤(例如按日志级别或日期),可以轻松关联到多个相关日志事件的事务等。

只要您每天索引少于 500MB 的日志,就有一个可免费下载的版本。

于 2010-04-07T05:50:03.593 回答
2

查看 Apache Chainsaw http://logging.apache.org/chainsaw/index.html以满足您的需求

于 2010-04-07T05:49:26.967 回答
2

你可以试试LogSaw,它是一个基于 Eclipse的开源软件,现在很活跃......

于 2012-02-09T11:16:05.440 回答
2

可能来晚了,但是LogMX做了所有这些事情,并且多年来一直非常活跃。它不是开源的,但即使看起来不开源,它也很强大!

于 2014-04-29T20:12:24.700 回答
1

Mind Tree Insight 也是一个有用的开源日志分析工具

http://sourceforge.net/projects/mindtreeinsight

于 2011-01-07T09:37:49.017 回答
1

我为此创建了一个自定义工具:https: //plus.google.com/u/0/102275357970232913798/posts/Fsu6qftH2ja

Alfa 是一个用于分析日志文件的 GUI 工具。通常,您被迫使用编辑器在其中搜索数据。您打开一个日志,一次又一次地按 Ctrl-F 和“下一步”按钮,然后重新加载修改过的文件,然后重复搜索。Alfa 将日志文件映射到数据库,允许您使用标准 SQL 查询来获取数据,而无需任何多余的操作。

于 2013-01-11T11:13:54.927 回答
0

您也可以尝试在线日志文件分析-

http://www.sharontools.com/tools/LogAnalysis/Main.php

史密斯

于 2011-03-16T12:28:15.733 回答
0

glogg是一个简单但功能强大的工具。它允许通过过滤表达式为线条着色,并具有断点样式的标记。一个单独的面板显示搜索结果和/或标记。

格洛格截图

于 2020-03-16T22:58:06.687 回答