[发明专利]零代码侵入的日志监控方法、装置、电子设备及存储介质有效
申请号: | 202211337372.4 | 申请日: | 2022-10-28 |
公开(公告)号: | CN115390913B | 公开(公告)日: | 2023-04-14 |
发明(设计)人: | 周小亮;杨坤 | 申请(专利权)人: | 平安银行股份有限公司 |
主分类号: | G06F8/72 | 分类号: | G06F8/72;G06F8/41;G06F9/445 |
代理公司: | 深圳市威世博知识产权代理事务所(普通合伙) 44280 | 代理人: | 李申 |
地址: | 518000 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 侵入 日志 监控 方法 装置 电子设备 存储 介质 | ||
1.一种零代码侵入的日志监控方法,其特征在于,包括:
获取到待监控文件的源代码,并基于所述源代码编译后的字节码文件构建第一软件包;其中,所述第一软件包中包括多种类文件,每一种所述类文件包括至少一个对应的业务代码;
构造日志监控注入代码,并基于所述日志监控注入代码编译后的字节码文件构建第二软件包;其中,所述日志监控注入代码包括类文件的转换器以及日志代码;其中,所述日志代码中还包括雪花算法的实现代码;
响应于接收到业务请求,启动所述类文件的转换器拦截运行时的每一种所述类文件;其中,每一种所述类文件在运行时均被植入启动参数;其中,所述启动参数包括需要注入所述日志代码的第一参数;
利用所述类文件的转换器对每一种所述类文件植入的所述启动参数进行识别;
响应于识别出的所述启动参数为所述第一参数,利用所述类文件的转换器对植入有所述第一参数的类文件的字节码进行修改,以在对应的所述业务代码内注入日志代码;
运行所述日志代码,以获取到所述业务代码对应的日志信息,并将所述日志信息上报至信息平台;具体包括:运行所述雪花算法的所述实现代码,通过所述雪花算法为每一个注入有所述日志代码的业务代码生成对应的方法ID;通过所述方法ID将所述日志信息上报至所述信息平台;其中,响应于所述业务代码在运行时没有产生异常,通过所述日志代码仅记录所述业务代码的入参值、返回值以及耗时;或,响应于所述业务代码在运行时产生异常,通过所述日志代码记录所述业务代码的所述入参值、异常类型以及异常堆栈信息。
2.根据权利要求1所述的日志监控方法,其特征在于,
所述获取到待监控文件的源代码,并基于所述源代码编译后的字节码文件构建第一软件包的步骤中,包括:
创建一个包括第一方法的类,并为所述包括第一方法的类配置第一程序入口;
获取到所述待监控文件的所述源代码,对所述源代码进行编译,并将所述源代码编译后的所述字节码文件与所述包括第一方法的类进行打包,以获取到所述第一软件包。
3.根据权利要求2所述的日志监控方法,其特征在于,
所述构造日志监控注入代码,并基于所述日志监控注入代码编译后的字节码文件构建第二软件包的步骤中,包括:
创建一个包括第二方法的类,并为所述包括第二方法的类配置第二程序入口;其中,所述第二程序入口的执行逻辑先于所述第一程序入口的执行逻辑;
构造所述日志监控注入代码,对所述日志监控注入代码进行编译,并将所述日志监控注入代码编译后的所述字节码文件与所述包括第二方法的类进行打包,以获取到所述第二软件包。
4.根据权利要求3所述的日志监控方法,其特征在于,
所述响应于接收到业务请求,启动所述类文件的转换器拦截运行时的每一种所述类文件的步骤,包括:
响应于接收到所述业务请求,从所述第二程序入口中调用所述类文件的转换器,以在多种所述类文件运行前启动所述类文件的转换器;
在运行所述第一软件包时,获取预定目录下的多种所述类文件,基于预先设置好的所述启动参数对每一种所述类文件进行插桩,以植入对应的所述启动参数;
利用所述类文件的转换器拦截每一种被植入有所述启动参数的所述类文件。
5.根据权利要求4所述的日志监控方法,其特征在于,
所述响应于识别出的所述启动参数为所述第一参数,利用所述类文件的转换器对植入有所述第一参数的类文件的字节码进行修改,以在对应的所述业务代码内注入日志代码的步骤,包括:
响应于识别出的所述启动参数为所述第一参数,基于字节码增强技术,利用所述类文件的转换器将所述日志代码自动注入到对应的所述业务代码中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安银行股份有限公司,未经平安银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211337372.4/1.html,转载请声明来源钻瓜专利网。