几年前记录过关于 lnav 的使用,但是一直停留在 filter-in
/ filter-out
这两个基础命令,最近研究 lnav 的 format,解锁了 sql query 和 filter-expr
操作。
先装一个 lnav!
- 安装 lnav.
1
brew install lnav
- 安装 lnav logcat format. 安装好之后就可以使用
1
2
3
4mkdir -p ~/.lnav/format/
download https://github.com/aspiers/lnav-formats alogcat.json
mv alogcat.json ~/.lnav/format/
lnav -i ~/.lnav/format/alogcat.jsonalogcat
格式。 - SQL 查询使用.
打开一个 logcat 日志:adb logcat --pid=$(adb shell pidof -s com.android.chrome) | lnav
。
按;
进入 sql 查询。1
SELECT log_line,log_body FROM alogcat WHERE tag = 'NetLogger'
- 导出 sql 查询内容到 csv.
按:
进入命令模式。1
writer-csv-to ~/path/to/file.csv
- 使用 filter-expr 过滤日志流.
在日志流内,也可以使用 filter-expr 对 format 描述的 field 进行过滤。
按:
进入命令模式,用正则过滤掉垃圾日志.1
:filter-expr :tag NOT REGEXP 'WindowManager'