可能是最好用的日志分析工具
在使用这个工具之前,我一直在用PID Cat为ADB输出的Logcat进行分析,如果是后台拉用户日志,可能只能依靠眼力还有Atom之类的工具了,这些其实还好,眼力练习练习总能从密密麻麻的日志中总找到自己想要的,虽然比较费神。不过比较影响工作效率的是,经常工作被打断,原因是总有同学要我查下日志看看是不是我们网络的问题。
深谙如此低效的我在网上谷歌了一圈没有找到我想要的工具,最后我还是选择自己写一个,这就是今天的主角:okcat,写之前我列出了所有我想要的需求:
- 支持为多个关键字高亮,并且不同关键字高亮的背景颜色尽可能不同
- 支持为多个TAG的关键字过滤,如果任意一个关键字被TAG包含,说明是有效日志行
- 支持自定义一行日志的正则表达式,因为几类日志每行的格式有所不同,并且很多后端的同学也有想要日志分析工具的需求
- 支持为多个内容转译,比如某行日志内容开头是'connected-',那么在输出后应该转译为'| SPDY已经连接 | connected-xxx xxx',并且对转译的译文进行高亮
- 支持为多个TAG转译,比如如果某行日志的TAG包含'ActivityLifecycle',那么他肯定是事件,我可以加一个事件关键字: 'MyActivityLifecycle [事件] MainActivity onResumed',并且对转译的译文背景进行高亮
- 支持对多个无用消息降低存在感处理,比如各种心跳日志其实没有大用,而且打印很频繁,需要对其用灰色进行着色,降低其可见度
- 支持根据特定内容进行分段,比如某一段日志开始其实是一个数据包流的开始,那么就要将日志分段
- 支持配置可长期维护,并且支持维护各种各样的配置,如网络相关的维护一个,社交相关的维护一个
- 对于我来说需要支持分析文件,还需要支持分析运行中应用的ADB LOGCAT
- 安装简单、操作简单
目前,上面提到的需求都已经全部完成~。并且目前该工具已经开源: https://github.com/Jacksgong/okcat
使用okcat最大的好处是,配置可维护行,各种配置编写一次,”终身”受益,并且在提高日志分析效率的同时,也为其他原本只能通过找你才看的懂日志的同学带去希望。
下面我们就以完成对 FileDownloader开源库中的demo project的运行时ADB的实时日志进行分析为案例,进行使用okcat,最终你会看到如封面图片的效果:
1. 安装
sudo pip install okcat
2. 拉取filedownloader.yml
创建目录~/.okcat,并且下载 filedownloader.yml文件到该目录下。(这个配置文件内的配置解读可以参考 这里)
3. 完成
将手机连接电脑,安装好 FileDownloader开源库中的demo project后运行,然后在终端执行:
okcat -y=filedownloader
就这样,非常简单,现在你就可以看到实时的对ADB LOGCAT日志持续分析的输出了。当然如果需要在分析实时日志时清空前面LOGCAT的缓存,在执行命令后面加上-c即可。
关于分析日志文件也非常简单,而配置文件的规则也十分清新简单,具体请参考这里的 中文文档,也期待大家PR与STAR。