经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件/图像 » Git » 查看文章
ggrep让多行日志-无处遁形!
来源:cnblogs  作者:阿旭^_^  时间:2024/1/26 10:03:54  对本文有异议

相信大家都很喜欢用grep指令,查一下项目中有没有出错的,然后通过logid搜索相关出错的日志和一些关键参数,但是在多行日志的情况下就很难处理了,比如okhttp拦截器中分别打印了url,param和response,然后你想统计一下有多少成功的,有多少失败的,发现就比较难了。

解决这个问题的方法,大多数选择在打印日志的时候做处理,把所需要的日志打印到一个行上,但是可能body中的json有换行,或合并后的日志过长,对阅读性增加了更多挑战。能解决但不优雅!今天给大家推荐一个新的方法,ggrep指令!

ggrep是group grep的缩写,意思是将数据分组匹配。然后可以通过多个表达式匹配指定的日志数据,使用这个指令,你的日志中需要有logid之类的唯一请求标识,可以通过--group或标准匹配参数--smart-logid进行分组日志。

ggrep指令安装:
gitee:

  1. /bin/bash -c "$(curl -fsSL https://gitee.com/bobby96333/ggrep/raw/main/install.sh)"

or github

  1. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/lingdor/ggrep/HEAD/install.sh)"

or 源码安装

  1. git clone https://github.com/lingdor/ggrep.git
  2. go build ./
  3. sudo cp ggrep /usr/local/bin/

CASE1: 对okhttp的多行数据url,param和response过滤输出:

  1. ggrep --smart-logid --grep 'OkHttpUtil print: --> POST' --grep 'OkHttpUtil print: {' --grep 'OkHttpUtil print: {"return_code' --orderly-match --color always *.info |head

CASE2 对多行日志进行并行,然后可以通过awk,grep,wc等脚本进行二次处理

  1. ggrep --smart-logid --grep 'OkHttpUtil print: --> POST' --grep 'OkHttpUtil print: {' --grep 'OkHttpUtil print: {"return_code' --orderly-match --merge-lines --color always *.info |head

CASE3 将整组数据打印:

  1. ggrep --smart-logid -grep 'OkHttpUtil print: --> POST' --print-group *.info |head -n 100

CASE4 并行处理

  1. ./ggrep --smart-logid --grep 'LOG1' --grep 'LOG2' --full-match --parallel-count 0 --color always ./demo/demo.log

CASE5 多条件and匹配

  1. ggrep
  2. ./ggrep --smart-logid --grep 'LOG1' --grep 'LOG2' --full-match --color always ./demo/demo.log

输入:

  1. 20240119 LogId[111] LOG1
  2. 20240119 LogId[111] LOG2
  3. 20240119 LogId[111] LOG3
  4. 20240119 LogId[111] LOG2
  5. 50240119 LogId[222] LOG1

输出:

  1. 20240119 LogId[111] LOG1
  2. 20240119 LogId[111] LOG2

原文链接:https://www.cnblogs.com/a-xu/p/17988596

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号