# 查找ERROR日志,以及它的后10行
$ grep -A 10 ERROR app.log
# 查找ERROR日志,以及它的前10行
$ grep -B 10 ERROR app.log
# -C代表前10行和后10行
$ grep -C 10 ERROR app.log
# 最容易想到的是tail,但有可能最后1000行日志全是正常日志
$ tail -n 1000 app.log | less
# 最后10条异常, tac会反向读取日志行,然后用grep找到10个异常日志,再用tac又反向一次就正向了
$ tac app.log | grep -n -m10 ERROR | tac
# 查找异常日志,并保留异常栈
$ awk -v RS= -v ORS='\n\n' '/Exception/' app_error.log | less
-v RS=等效于-v RS='',设置RS变量为空,使得awk一段一段地读取日志
-v ORS='\n\n'设置ORS变量为2个换行,使得awk一段一段的输出
/Exception/代表过滤出包含正则Exception的段
一般情况下,使用less可以更快速的查看日志,比如通过tail -n10000取出最近1w条日志,通过less查看,如下:
$ tail -n 10000 app.log | less
看日志时,有一个很常见的需求,就是很多日志都是当前不需要关心的,需要将它们过滤掉,less提供了&/的功能,可快速过滤掉不想看的日志
网友评论