服务器端开发过程中,查看日志文件是非常有效定位问题的手段。
查看日志除了常用的grep tail 命令外,还有一个非常牛叉的命令awk,可以根据条件分隔截取日志。
AWK
下面看一个case,假如我有这样一段log:
想要查询第一部分:0ba8d03515331375750555554e0ff9,第24,25位的值是“1d”的内容。
可以使用这个命令:cat eagleeye.log | awk -F "|" '{if(substr($1, 25, 2)=="00"){print $1}}'
看下结果:
可以看到选择的都是我们需要的。
还有类似的几个命令:
cat eagleeye.log | grep "UserRoleService" | awk -F "|" '{print $1, substr($1, 25, 2)}'
awk用法还很多,这个只是很小的一个例子,场景很固定,但是可以看出awk的强大之处。
GREP
grep 命令通常使用方法:cat application.log | grep -A 5 -B 5 BizException (等同于: grep -C 5 BizException)
查找包含 ‘BizException’ 的日志,前后五行,如果需要在结果里继续查找,后面再跟上 | grep **** 即可
有时候,grep出来的日志量非常大,我们只需要查看最近几行,或者头几行:
cat application.log | grep -A 5 -B 5 BizException | tail -n 5 (最后五行)
cat application.log | grep -A 5 -B 5 BizException | head -n 5 (开始五行)