面对一个大型多线程系统的日志文件(一般是 100M~2G 大小),有哪些工具适合查看、分析呢?
因为并发度较高,各个线程的日志混在一块了,不容易分析。形如:
<timestamp> <thread-id> <msg>
如上,可以看作一维(时间维度)的日志,同一个线程连续运行的日志可能被其它线程的日志给打断了,并发度高时,日志会非常混乱。
有没有这种工具,可以达到类似如下效果:
<timestamp1> <tid-1>___________________<msg>
<timestamp2> <tid-1>___________________<msg>
<timestamp3> ________<tid-2>___________<msg>
<timestamp4> ________<tid-2>___________<msg>
<timestamp5> _________________<tid-3>__<msg>
<timestamp6> ________<tid-2>___________<msg>
<timestamp7> <tid-1>___________________<msg>
<timestamp8> <tid-1>___________________<msg>
如上效果,可以比较清晰地展示出各个线程在不同时刻的运行状况以及相互关系(暂不考虑日志 IO 耗时对程序逻辑的微妙影响)。
首先,系统会运行多个(百、千级别)且数量不定的线程数,单纯如上所述显示的方法,屏幕不够宽!
其次,数据量较大时,如何高效地处理,也是一个蛋疼的问题,如果需要支持交互(例如临时屏蔽线程 tid=3 的日志),性能可能是瓶颈。
以上只是我的一点看法、一个小的遐想,肯定还有不完善的地方,不知道大家有没有什么经验、工具可以分享,谢谢。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.