首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高效查看日志排错

高效查看日志排错

作者头像
gaigai
发布2019-08-30 11:37:40
8000
发布2019-08-30 11:37:40
举报
文章被收录于专栏:Windows开发Windows开发

测试人员发现问题,开发人员排查时优先查看日志,查看日志时希望将跟问题相关的日志搜索出来,然后阅读是否符合预期。像Windows自带的Notepad一次只能搜索一个关键词是无法满足要求,使用正则表达式高效查找日志让排查问题变得更加容易。

免费软件Notepad++是一款功能强大的文本编辑器,其支持使用正则表达式查找,使用方法:选择菜单栏搜索 -> 选择子菜单查找,弹出查找窗口,输入查找目标,查找模式选择正则表达式

日常查找日志的场景主要有三种:

第一, 查找带有 关键词A 或 关键词B 或 关键词C

第二, 查找带有 关键词A 且 关键词B

第三, 查找带有 关键词A但不含关键词B

根据这三场景,举例说明如何使用正则表达式去查找。

场景一:智能笔模块测出一个问题,开发人员想查看智能笔模块的日志,还有报警告或报错误的日志。

使用的查找表达式为:\[smartpen\]|log begin|LOG_WARNING|LOG_ERR

日志打印具备规范化,每行日志都会打印所属模块、日志级别。

智能笔模块为smartpen,每行日志都会带有 [smartpen],因为中括号符号[]为正则表达式预定义符合,需要用后划线符号 \ 进行转义。

竖线符号| 表示或关系,只要满足其中一个表达式就可以。

logbegin属于日志规范,程序启动后第一行日志,方便开发人员查看最后一次运行的日志。

LOG_WARNING、LOG_ERR属于日志级别警告和错误。

场景二:使用场景一的查找表达式后发现找到的日志还是很多,想进一步过滤掉带有“invalid session id,sid=xxx”的警告日志。

使用的查找表达式为:\[smartpen\]|logbegin|LOG_WARNING(?!.*sid)|LOG_ERR

与场景一使用查找表达式区别在于LOG_WARNING变成LOG_WARNING(?!.*sid)

(?!A)表示不匹配A,也就是不匹配.*sid,.*表示任何数量的任意字符,整个表达式的意思是筛选前面有LOG_WARNING,后面不要有sid的日志。

场景三:收不到智能笔的数据包,开发人员想查看下接收数据包处的日志

使用的查找表达式:\[smartpen\].*recv data,查找带有关键词[smartpen]且接收数据包入口日志关键词recv data

掌握这三种用法基本可以满足日常的日志查找,想更高级使用需要进一步学习正则表达式的语法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Windows开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 测试人员发现问题,开发人员排查时优先查看日志,查看日志时希望将跟问题相关的日志搜索出来,然后阅读是否符合预期。像Windows自带的Notepad一次只能搜索一个关键词是无法满足要求,使用正则表达式高效查找日志让排查问题变得更加容易。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档