0xc0000005 系统应用日志_Linux系统应用日志问题排查的六大套路

天下武功,唯快不破。我们在开发工程中,遇到不同的问题场景,能够有相应的套路,那我们的工作就能够事半功倍。

场景一:过滤出关键字附近的日志

因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.

套路:按行号查看,过滤出关键字附近的日志

首先,得到关键日志的行号,

cat -n test.log | grep "error"  

如得到"error"关键字所在的行号是102行。此时如果我想查看这个关键字前10行和后10行的日志:

cat -n test.log |tail -n +92|head -n 20
  • tail -n +92 表示查询92行之后的日志
  • head -n 20 表示在前面的查询结果里再查前20条记录

显示行号,分页查看,使用空格翻页(使用more/less)

cat -n test.log | grep "error" | more

场景二:查看指定时间段内的日志

由于应用日志太多,通常我们只想查看某个时间段的日志。

套路:

sed -n '/2020-02-20 17:00:/,/2020-02-20 17:10:/p' app.log
sed -n '/2020-02-20 17:00:00/,/2020-02-20 17:10:00/p' app.log

这个需要注意的地方是17:00:00或者17:00必须出现过。如果没有任何日志出现,通过如下命令请先查看是否存在。

grep "2020-02-20 17:10:00" app.log

场景三:查看日志中特定字符的匹配数目

我们有时候想查看下,某个错误出现了多少次。

套路:

统计整个文件出现的error次数。

grep "error" test.log | wc -l

统计指定时间内,该日志文件中的出现错误的次数。

sed -n '/2020-02-21 00:00:/,/2020-02-21 17:10:/p' app.log  | grep 'error' | wc -l

场景四:实时查看日志

我们上下游之间进行联调时,需要实时查看日志。比如接口是否被调用,消息有没有接收到,等等。

套路:

tail -f test.log

默认只能查看10行数据,如果要看更多,比如说100行,可以通过如下命令。

tail -100f test.log

tailf -100 app.log
我个人非常喜欢该命令,和上下游系统联调的时候,经常会用到。

场景五:查询最后100行,并查找关键字“error”

通常我们在服务器部署应用启动报错的时候,通常因为某些错误导致应用直接中断,可能会用到下面的命令,只查看最近的错误日志信息。

套路:

tail -n 100 test.log | grep 'error'

关键字文字标红,你值得拥有。

tail -n 100 test.log | grep 'error' --color

查询最后100行,并查找关键字“error”,文字标红,上下扩展两行

tail -n 20 test.log | grep '结果' --color -C2

类似参数说明:

  • -A: 显示匹配行及前面多少行, 如: -A3, 则表示显示匹配行及前3行
  • -B: 显示匹配行及后面多少行, 如: -B3, 则表示显示匹配行及后3行
  • -C: 显示匹配行前后多少行, 如: -C3, 则表示显示批量行前后3行

场景六:日志文件超大时,使用vim查找

有时候文件内容太多,通过过滤不太好定位出具体的错误信息,我们不妨使用vim来查看。

套路:

先用vim命令打开文件

vim test.log 

然后进行相应操作,比如说下面几个常规使用方法。

  • 跳到文本的最后一行:按“G”,即“shift+g”
  • 跳到文本第一行的第一个字符:先按两次“g”,
  • 跳转到当前行的第一个字符:在当前行按“0”。
  • 查找某个关键词:查找格式为英文冒号+问号+关键词,从最后往上查找关键字,点N往上。如:?com.common.exception

相信你学会了上面这六大套路,足够应对绝大部分应用日志问题排查了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值