疯狂的日志

早上,您不喝咖啡,就打开邮件,看到一个错误报告,说明对自己有用的东西,它没有失败,也没有造成任何麻烦。移动中有零个想法,没有可疑之处,代码也没有大的变化-您需要进入日志。

而且不久前您还没有去那里,因此您分发了一个文件,日志最大为100 mb。或最大500 mb。哎呀!或可能高达10 GB(*)。宝贵的证据位于10,737,418,240字节之间,必须紧急运行,以找出正在发生的事情,而咖啡已经开始冷却。

或者,也许有一个包含两百个文件(每个文件5 MB)的损坏日志的归档文件已通过预告片进入了报表,您需要以某种方式粘贴它们,然后进行查找,挖掘和思考。

熟悉吗?

总的来说,我们所有人都需要分析我们创作的“生命痕迹”,并且文件重达几MB会很好,因为使用记事本打开1 GB日志甚至尝试进行搜索都是一项可疑的任务。

下面,我将为您介绍一种工具,该工具对打开的文件的大小没有限制(**),但搜索速度非常快。

我邀请您加入开发。

是的,会有很多有趣的图片。

因此,打开日志并进行搜索似乎是一项微不足道的任务,有时可能会遇到普通文件大小的问题。您可以用任何东西打开一个琐事,至少使用相同的记事本或记事本++,但是在罂粟花和Linux上,因此有时用猫将所有东西放到控制台中并进行搜索有时会更容易。

除其他外,您可以使用提到的记事本++,atom,logExpert,sublime,裸vim,bbedit,glogg等。我必须立即说,并不是每个人都会打开技嘉2,某些幸存的a将在搜索中崩溃。在所有上述情况中,也许只有原子是真正的跨平台的,当我必须在多个平台上并行工作时,我想做一件事。到底有多少人吃掉了RAM以处理至少几百兆的日志,这是另一回事。

这实际上就是我们拥有花栗鼠工具的原因,该工具曾在狭窄的任务下使用,但很快发展成为用于分析日志的综合解决方案。花栗鼠无能为力;它的任务简化为一个简单的任务:

  • 打开日志而不必担心文件大小;
  • 进行搜索,这样您就不必等待,而是立即看到结果;
  • 记住所有搜索内容,并按需仔细存储它们;
  • 帮助您直观地了解信息;
  • 相对于RAM适度地表现;
  • 解决其他较窄的任务,但始终简化为日志分析。

好吧,让我们按顺序讨论一切。

资源资源


Chipmunk不会将任何内容加载到RAM中,除了在屏幕上可见的那条日志(缓冲多了一点,但这是一件小事)。在文件中四处走动,花栗鼠读取文件的一部分(对应于滚动位置),然后仅将其加载到内存中。因此,对RAM的需求非常清楚,不会波动,并且会立即显示带有文件内容的第一个“屏幕”(尽管索引将在后台继续进行)。

方便和可视化


图片

有一个搜索查询管理器,您可以在其中:

  • 为滤镜分配颜色(有助于感知数据)
  • 将过滤器集合保存到文件中,以便始终可以使用现成的搜索模式。

例如,您可以查看文件中的匹配频率(列越高,文件片段中的匹配越多)。

图片

或者,您可以在正则表达式中指定一个组并获得漂亮的图形(在所使用的示例中,表达式CPU使用率:\ s +(\ d + \。\ D +))。现在,您看到了CPU消耗异常的地方以及应该仔细检查的日志。

图片

除了本身进行搜索之外,还可以为每行日志添加书签,这些行将始终显示在搜索结果窗口中。当我看到几百万行中的重要内容并且您不想忽略它时,这非常方便。

文件组合


为了解决与多个文件相关的问题,花栗鼠可以将文件盲入一个文件(例如,按文件的最后更改日期)。所有需要的:

  • 将一组文件扔进花栗鼠窗口
  • 如果您需要根据需要对文件进行排序
  • 此外,您可以搜索所有文件,例如,排除与“错误”一词不匹配的那些文件(嗯,为什么我们应该走到一切都那么平静的地方?)

图片

结果,我们在窗口中获得了所有选定文件的序列。

如果您需要一种更复杂的日志组合机制(例如,如果您有来自不同设备/来源的日志),则可以使用合并功能,该功能确定每个文件的时间戳格式并按时间顺序显示日志。

图片

注意输出左侧的颜色标签-这些是文件标签。也就是说,您看不到一个文件接一个文件的输出(并置),但是所有文件的输出按时间排序(合并)。

特殊功能


如果您曾经遇到过DLT,那么您就会知道使用DLTViewer是一件多么痛苦的事情。好消息是花栗鼠是打开和分析DLT文件的替代方法。此外,它还支持DLT流。

图片

当您打开DLT文件时,您将立即看到该文件的摘要,包括所有组件的列表,如果您对特定的APID(而不是整个日志)感兴趣,这将非常方便。

说到线程


使用Chipmunk开箱即用的是一个简单的插件“ Commands”,该插件可让您运行任何控制台命令并在Chipmunk中接收输出,并具有搜索此输出的能力。自然,如果您具有活动搜索(例如,已保存的过滤器),则结果数据将随着流从控制台命令更新而更新。

图片

哦,是的插件


到目前为止,他们很少。是的,真的不够。只有5个公开的(那些是在公共领域并且可以由插件管理器访问的),而不是公开的,我什至不知道,也许是几个。

编写插件非常简单(我将保留一个简单的任务)。

例如,如果您的日志包含以字节形式显示的消息,并且您希望立即以可读形式(即已解码)查看它们;插入一个插件很容易,该插件将接收选定的日志片段作为输入,并将解码后的输出扔到面板中。甚至可能即时解码并在屏幕上显示可理解的文本,而不是A5 FF 13 EE ...等。

通常,扩展有两种类型:第一种是与渲染一起使用,即,它们使您可以更改输出的表示形式。我想即时解码某些内容-您可以;希望粘贴图形(例如图标)-尚不清楚为什么需要它,但是可以。

另一种类型的插件(并且更有趣),那些插件可以提供数据(创建流)。例如,要查看串行端口的输出吗?没问题:这个案例是一个新的npm项目,我们在其中包含了我们最喜欢的端口,并根据您的喜好添加了一些UI,现在您的插件可以将数据扔到Chipmunk中了。

为了方便起见和初次约会,这在体面家庭中很常见,这里有一个快速入门资料库,其中有两个例子。

如果有兴趣,请在评论中告诉我-我将为创建和发布插件提供单独的后期指南(顺便说一句,发布无需注册)。

而不是结论


仅此而已。我不想以此帖子制作广告手册或用户卡,因此,请简短地填写最少的字母。我的目标是与您共享另一个处理日志的工具,该工具对于解决许多问题很有用。

该项目是完全开源的,并且对您的任何参与开放。希望看到对这样的支持?创建问题,然后选择“功能请求”。发现了错误?我们很乐意看到您的错误报告,其中简要(但足够)地描述了问题。欢迎使用英语,但不禁止使用俄语。

当然,将珍贵的星星放在github上,在短短几秒钟内,由于我们对我们正在做的工作的认可而感激,您会感到稍微的温暖和心情改善。对于您来说,请点击-对于我们来说,就是反馈和启发。

谢谢。


其他连结

澄清度
(*) , (1 <). , . . 10-20 , . embedded .

(**), , . chipmunk . , chipmunk RAM, , SSD.

All Articles