[发明专利]方法调用链跟踪方法、电子装置及计算机可读存储介质在审
申请号: | 201810854255.2 | 申请日: | 2018-07-30 |
公开(公告)号: | CN110780883A | 公开(公告)日: | 2020-02-11 |
发明(设计)人: | 陈青龙 | 申请(专利权)人: | 网宿科技股份有限公司 |
主分类号: | G06F8/60 | 分类号: | G06F8/60 |
代理公司: | 11573 北京华智则铭知识产权代理有限公司 | 代理人: | 刘荣鑫 |
地址: | 200030 上海市徐汇区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 方法调用 调用链 计算机可读存储介质 跟踪 电子装置 调用请求 配置项 输出 设置配置 记录 重构 拦截 引入 应用 | ||
本发明公开了一种方法调用链跟踪方法,该方法包括:设置当前应用是否进行方法调用链跟踪的配置项;在方法调用前进行拦截,根据所述配置项判断是否需要输出所述方法的调用链信息;当判断出需要输出所述调用链信息时,在执行所述方法的调用请求前记录所述方法的调用链信息,在完成所述方法的调用请求后输出所记录的调用链信息。本发明还提供一种电子装置及计算机可读存储介质。本发明提供的方法调用链跟踪方法、电子装置及计算机可读存储介质能够通过设置配置项和引入Spring‑AOP框架,在不重构代码的前提下,实现方法调用链的跟踪。
技术领域
本发明涉及方法调用技术领域,尤其涉及一种方法调用链跟踪方法、电子装置及计算机可读存储介质。
背景技术
方法(又称作函数)是指实现某些特定功能的代码块。软件实现过程中,一个功能的实现总是由一个或者多个方法来完成的。例如,用户要登录一个网站,需要有用户校验、密码校验、首页各个模块内容加载等多个方法来一起实现。其中有些方法可能被多个地方使用,如密码的格式校验方法可以在支付密码、登录密码设置的时候被调用。由于一个方法可能被多处调用,调用的入口不一样,实现的功能及处理流程就可能不一样。在方法的调用实现过程中,需要执行异常处理(如异常捕获输出日志),如果没有整个调用链的日志输出,就很难判断是哪个业务流程或业务分支产生的错误。
当前实现方法调用链的方式主要为:在方法实现开始时记录调用关系,流程处理完输出调用链日志。但是,由于要在每个方法增加调用方法的记录,就需要方法实现某个接口,或者是方法上增加调用链记录的相关方法。针对已经开发完的代码,如果要增加这个功能就相当于要重构一遍代码,维护成本高。
发明内容
有鉴于此,本发明提出一种方法调用链跟踪方法、电子装置及计算机可读存储介质,以解决至少一个上述技术问题。
首先,为实现上述目的,本发明提出一种方法调用链跟踪方法,该方法包括:
设置当前应用是否进行方法调用链跟踪的配置项;
在方法调用前进行拦截,根据所述配置项判断是否需要输出所述方法的调用链信息;及
当判断出需要输出所述调用链信息时,在执行所述方法的调用请求前记录所述方法的调用链信息,在完成所述方法的调用请求后输出所记录的调用链信息。
可选地,所述配置项中通过printMethodCallChain参数控制是否需要输出所述调用链信息,当所述参数值为true时,表示需要输出所述调用链信息;当所述参数值为false时,表示不需要输出所述调用链信息。
可选地,所述在方法调用前进行拦截,根据所述配置项判断是否需要输出所述方法的调用链信息包括:
当接收到所述方法的调用请求时,根据所述配置项判断是否需要输出所述调用链信息;
当判断出需要输出所述调用链信息时,缓存所述方法调用请求的请求ID;
在执行所述方法的调用请求之前进行拦截,判断是否缓存有所述请求ID,以确定是否需要输出所述调用链信息。
可选地,所述当判断出需要输出所述调用链信息时,在执行所述方法的调用请求前记录所述方法的调用链信息,在完成所述方法的调用请求后输出所记录的调用链信息包括:
当判断出缓存有所述请求ID时,记录所述方法的调用链信息,然后执行所述方法的调用请求;
处理完所述方法的调用请求后,判断是否缓存有所述请求ID;
当判断出缓存有所述请求ID时,输出所记录的所述调用链信息。
可选地,所述方法还包括:
在输出所记录的所述调用链信息后,移除缓存中的所述请求ID。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网宿科技股份有限公司,未经网宿科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810854255.2/2.html,转载请声明来源钻瓜专利网。