[发明专利]一种基于go语言的自动化日志添加和代码问题查找定位方法在审
申请号: | 202011635202.5 | 申请日: | 2020-12-31 |
公开(公告)号: | CN112667243A | 公开(公告)日: | 2021-04-16 |
发明(设计)人: | 景壮;魏子重;孙思清 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/73 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 阚恭勇 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 go 语言 自动化 日志 添加 代码 问题 查找 定位 方法 | ||
本发明提供一种基于go语言的自动化日志添加和代码问题查找定位方法,属于软件开发领域,本发明通过语法分析的代码函数获取方法,自动化的函数编排以及人为可干预的函数优先级分配,通过标签进行代码推演进行问题查找的方式。简化了Bug查找过程,降低了运维成本。
技术领域
本发明涉及软件开发领域,尤其涉及一种基于go语言的自动化日志添加和代码问题查找定位方法。
背景技术
在日常代码开发过程中,对于代码开发过程中问题的定位以及代码执行路径的追踪,使用日志是程序开发人员的重要方法,在go语言中不同的日志框架也应运而生,但是在使用过程中因为开发人员的人为因素日志的实际使用效果参差不齐,一套自动化的日志添加方法,规范统一的日志输出格式对于Bug的定位和后期的运维必不可少。
日志的管理是代码开发过程中很重要的一部分,完整的日志将会在系统维护中起着异常重要的作用。但由于日常代码开发过程中,开发人员换的习惯和人为因素造成日志的不完整,可追溯性差,对代码中Bug的查找带来了复杂性,同时也增加了后期代码运维的成本。
发明内容
为了解决以上技术问题,本发明提供了一种基于go语言的自动化日志添加和代码问题查找定位方法,通过一套自动化的代码插入机制,规范了代码日志的格式,降低了人为遗漏代码的可能性,为Bug的查找提供了较为完整的追踪路径,简化了Bug查找过程。同时格式化的日志输出对基于日志的数据挖掘和问题定位提供了便利,大大降低了运维成本。
本发明的技术方案是:
一种基于go语言的自动化日志添加和代码问题查找定位方法,通过语法分析的代码函数获取方法,自动化的函数编排以及人为可干预的函数优先级分配,通过标签进行代码推演进行问题查找。
包括:
go语言日志框架接入与初始化;golang编译过程的函数分析,过滤,存储;函数方法编排与等级规划;日志处理过程。
进一步的,
步骤如下:
1)通过获取go的词法分析和语法分析生成的节点FuncDecl结构的形式生成的待添加日志函数集合;
2)通过自定义格式日志函数筛选的方法;
3)待添加日志函数的标签的使用以及按照获取频率修正优先级的判定方式;
4)通过扫描完整的代码,识别代码中存在的指定函数,并在函数指定位置添加日志的实现过程;
5)通过日志收集结合函数标签的代码追踪方式。
进一步的,
接入代码使用的日志框架,并指定日志生成格式
1)主动导入或者自动检测出go语言代码中所使用的日志框架,根据框架选择接入规则,通过日志框架规则构建日志自动插入的基础结构;
2)日志规则格式化,指定生成日志的格式,默认以“包名+‘-’+方法名+‘-’+线程ID”的形式作为提示信息,后面根据优先级选择跟随参数。
进一步的,
在golang的编译过程中,借助编译过程的语法分析和词法分析,在语法分析过程中输出FuncDecl结构体的节点信息,将节点信息中的Recv,Name,Type信息进行输出打印到指定文件,主要标记出函数名称,形参和返回值关键属性。
进一步的,
将获取的函数进行进一步的处理
包括
(1)在打印的过程中将函数进行指定编排,给不同的函数加上标签;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011635202.5/2.html,转载请声明来源钻瓜专利网。