[发明专利]一种日志生成方法、装置和计算机可读存储介质在审
申请号: | 202011329469.1 | 申请日: | 2020-11-24 |
公开(公告)号: | CN114546793A | 公开(公告)日: | 2022-05-27 |
发明(设计)人: | 张晓翼 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F9/54 |
代理公司: | 深圳翼盛智成知识产权事务所(普通合伙) 44300 | 代理人: | 李汉亮 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 日志 生成 方法 装置 计算机 可读 存储 介质 | ||
本发明实施例公开了一种日志生成方法、装置和计算机可读存储介质;本发明实施例在应用程序的业务逻辑代码中插入至少一个预设日志生成代码后,得到目标业务逻辑代码,然后,运行目标业务逻辑代码,以得到预设日志生成代码对应的初始日志,获取初始日志对应的当前线程的调用者堆栈,该调用者堆栈包括多个堆栈跟踪对象,然后,基于预设堆栈关系,在堆栈跟踪对象中筛选出调度初始日志的堆栈跟踪对象,得到目标堆栈跟踪对象,根据目标堆栈跟踪对象,确定初始日志的上下文信息,并将上下文信息和初始日志进行拼接,以生成应用程序的目标日志;该方案可以提升日志信息的定位准确率。
技术领域
本发明涉及通信技术领域,具体涉及一种日志生成方法、装置和计算机可读存储介质。
背景技术
近年来,随着互联网技术的飞速发展,越来越多的应用程序应用在生活中。当应用程序运行时出现问题,需要通过运行时产生的日志去分析出现问题的原因,因此,在应用程序运行时,需要生成日志。现有的日志生成方法主要通过在业务逻辑代码中插入日志生成代码,运行业务逻辑代码时触发生成日志。
在对现有技术的研究和实践过程中,本发明的发明人发现现有的日志生成方法完全依赖插入日志生成代码来生成日志,生成的日志信息单一,有效信息不足,而且在一些场景下,可能存在多种情况生成同样的日志信息,因此,导致日志信息的定位准确率大大降低。
发明内容
本发明实施例提供一种日志生成方法、装置和计算机可读存储介质,可以提高日志信息的定位准确率。
一种日志生成方法,包括:
在应用程序的业务逻辑代码中插入至少一个预设日志生成代码,得到目标业务逻辑代码;
运行所述目标业务逻辑代码,以得到所述预设日志生成代码对应的初始日志;
获取所述初始日志对应的当前线程的调用者堆栈,所述调用者堆栈包括多个堆栈跟踪对象;
基于预设堆栈关系,在所述堆栈跟踪对象中筛选出调度所述初始日志的堆栈跟踪对象,得到目标堆栈跟踪对象;
根据所述目标堆栈跟踪对象,确定所述初始日志的上下文信息,并将所述上下文信息和初始日志进行拼接,以生成所述应用程序的目标日志。
相应的,本发明实施例提供一种日志生成装置,包括:
插入单元,用于在应用程序的业务逻辑代码中插入至少一个预设日志生成代码,得到目标业务逻辑代码;
运行单元,用于运行所述目标业务逻辑代码,以得到所述预设日志生成代码对应的初始日志;
获取单元,用于获取所述初始日志对应的当前线程的调用者堆栈,所述调用者堆栈包括多个堆栈跟踪对象;
筛选单元,用于基于预设堆栈关系,在所述堆栈跟踪对象中筛选出调度所述初始日志的堆栈跟踪对象,得到目标堆栈跟踪对象;
生成单元,用于根据所述目标堆栈跟踪对象,确定所述初始日志的上下文信息,并将所述上下文信息和初始日志进行拼接,以生成所述应用程序的目标日志。
可选的,在一些实施例中,所述筛选单元,具体可以用于根据所述预设堆栈关系,确定出调度所述初始日志的堆栈跟踪对象的栈位置信息;基于所述栈位置信息,在所述调用者堆栈中筛选出所述目标堆栈跟踪对象。
可选的,在一些实施例中,所述筛选单元,具体可以用于获取所述调用者堆栈的堆栈层信息,所述堆栈层信息用于指示所述调用者堆栈的堆栈层;根据所述预设堆栈关系,在所述堆栈层信息中确定出调度所述初始日志的堆栈跟踪对象对应的目标堆栈层;将所述目标堆栈层在所述调用者堆栈中的位置信息作为调度所述初始日志的堆栈跟踪对象的栈位置信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011329469.1/2.html,转载请声明来源钻瓜专利网。