本发明涉及数据处理技术领域,尤其涉及一种堆栈日志处理方法及装置。
背景技术:
随着计算机技术的发展,各种软件和系统应运而生。为方便编程人员和维护人员查看软件和系统投入使用的过程中出现的错误,进而对软件和系统进行调试和维护,通常会在软件和系统运行的过程中记录堆栈日志,以反映软件和系统的运行情况。
相关技术中,为保证编程人员和维护人员能够查看到全部错误信息,会记录完整的堆栈日志,但通常完整的堆栈日志中存在很多不需要关注的内容,这不仅增加记录堆栈日志的磁盘开销,且增加编程人员和维护人员查看堆栈日志的工作量。
技术实现要素:
为克服相关技术中存在的问题,本发明提供一种堆栈日志处理方法及装置。
根据本发明实施例的第一方面,提供一种堆栈日志处理方法,所述方法包括:
查找待处理堆栈日志中的预设删除标识;
确定与所述预设删除标识对应的待删除堆栈信息;
将所述待删除堆栈信息从所述待处理堆栈日志中进行删除,得到目标堆栈日志。
其中,所述预设删除标识为拦截器代码;
所述确定与所述预设删除标识对应的待删除堆栈信息,包括:
在所述待处理堆栈日志中查找与所述拦截器代码对应的预设起点特征和预设终点特征;
根据所述预设起点特征和所述预设终点特征识别出所述待处理堆栈日志中的待删除堆栈信息。
其中,所述在所述待处理堆栈日志中查找与所述拦截器代码对应的预设起点特征和预设终点特征,包括:
在所述待处理堆栈日志中查找位于所述拦截器代码前面的和后面的、且与所述拦截器代码相邻的预设代码;
将位于所述拦截器代码前面的、且与所述拦截器代码相邻的预设代码作为所述预设起点特征,将位于所述拦截器代码后面的、且与所述拦截器代码相邻的预设代码作为所述预设终点特征。
其中,所述预设代码为有效信息关联代码;
所述根据所述预设起点特征和所述预设终点特征识别出所述待处理堆栈日志中的待删除堆栈信息,包括:
将所述预设终点特征所在行的代码,以及位于所述预设起点特征所在行和所述预设终点特征所在行之间的代码确定为所述待处理堆栈日志中的待删除堆栈信息。
其中,所述预设代码为未知来源标记代码;
所述根据所述预设起点特征和所述预设终点特征识别出所述待处理堆栈日志中的待删除堆栈信息,包括:
将所述预设起点特征所在行的代码和所述预设终点特征所在行的代码,以及位于所述预设起点特征所在行和所述预设终点特征所在行之间的代码确定为所述待处理堆栈日志中的待删除堆栈信息。
其中,所述确定与所述预设删除标识对应的待删除堆栈信息,包括:
将所述预设删除标识所在行的代码识别为待删除堆栈信息。
根据本发明实施例的第二方面,提供一种堆栈日志处理装置,所述装置包括:
预设删除标识查找模块,用于查找待处理堆栈日志中的预设删除标识;
待删除堆栈信息确定模块,用于确定与所述预设删除标识对应的待删除堆栈信息;
删除模块,用于将所述待删除堆栈信息从所述待处理堆栈日志中进行删除,得到目标堆栈日志。
其中,所述预设删除标识为拦截器代码;
所述待删除堆栈信息确定模块,包括:
查找单元,用于在所述待处理堆栈日志中查找与所述拦截器代码对应的预设起点特征和预设终点特征;
待删除堆栈信息识别单元,用于根据所述预设起点特征和所述预设终点特征识别出所述待处理堆栈日志中的待删除堆栈信息。
其中,所述查找单元,包括:
预设代码查找子单元,用于在所述待处理堆栈日志中查找位于所述拦截器代码前面 的和后面的、且与所述拦截器代码相邻的预设代码;
特征确定子单元,用于将位于所述拦截器代码前面的、且与所述拦截器代码相邻的预设代码作为所述预设起点特征,将位于所述拦截器代码后面的、且与所述拦截器代码相邻的预设代码作为所述预设终点特征。
其中,所述预设代码为有效信息关联代码;
所述待删除堆栈信息识别单元,用于将所述预设终点特征所在行的代码,以及位于所述预设起点特征所在行和所述预设终点特征所在行之间的代码确定为所述待处理堆栈日志中的待删除堆栈信息。
其中,所述预设代码为未知来源标记代码;
所述待删除堆栈信息识别单元,用于将所述预设起点特征所在行的代码和所述预设终点特征所在行的代码,以及位于所述预设起点特征所在行和所述预设终点特征所在行之间的代码确定为所述待处理堆栈日志中的待删除堆栈信息。
其中,所述待删除堆栈信息确定模块,用于将所述预设删除标识所在行的代码识别为待删除堆栈信息。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明实施例提供的一种堆栈日志处理方法及装置,通过查找到的待处理堆栈日志中的预设删除标识,确定待处理堆栈日志中的待删除堆栈信息,进一步地,对确定出的待删除堆栈信息从待处理堆栈日志中进行删除,得到目标堆栈日志。
当应用本发明实施例的方案时,对待处理堆栈日志中确定出的待删除堆栈信息进行删除,进而得到目标堆栈日志,精简掉了堆栈日志中编程人员和维护人员不需要关注的内容,所以本发明的技术方案能够减小记录堆栈日志的磁盘开销,且能够减小编程人员和维护人员查看堆栈日志的工作量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据一示例性实施例示出的一种堆栈日志处理方法的流程图;
图2为一种待处理堆栈日志的示意图;
图3为根据一示例性实施例示出的一种堆栈日志处理方法中步骤S102的一种流程图;
图4为根据一示例性实施例示出的一种堆栈日志处理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种堆栈日志处理方法的流程图,如图1所示,该方法可以包括以下步骤:
在步骤S101中,查找待处理堆栈日志中的预设删除标识。
为方便编程人员和维护人员查找软件或系统运行时发生错误的原因,手机、ipad、电脑等终端会记录在其上运行的软件和系统的堆栈日志,以反映相应的软件和系统的运行情况。在记录的过程中,当堆栈日志需要处理时,手机、ipad、电脑等终端从待处理堆栈日志中查找预设删除标识。
在本发明具体实施过程中,可根据具体情况判断堆栈日志是否需要处理。例如,可以在检测到堆栈日志中出现代理标记代码(如可以是图2左下角的代码$Proxy)时,确定堆栈日志需要处理;也可在检测出预设操作的堆栈日志记录完成时(如拦截器的拦截操作的堆栈日志记录完成时),确定堆栈日志需要处理;甚至可以每隔预设时间段处理一次堆栈日志等。
此外,预设删除标识可以有多种呈现形式,可根据实际需要进行设置,例如预设删除标识可以是拦截器代码(如可以是图2中所示的拦截器代码),也可以根据实际需要将一个或多个指定代码设置为预设删除标识,预设删除标识的个数为一个或多个。以图2进行说明,可以将invoke和/或Proxy等设置为预设删除标识。
在步骤S102中,确定与预设删除标识对应的待删除堆栈信息。
需要说明的是,为满足实际需要,本步骤确定出的待删除堆栈信息应该是编程人员和维护人员无需关注的内容,所以,本发明在设置预设删除标识、以及下文所提到的预设起点特征、预设终点特征、预设代码时,总的要求是确定出的待删除堆栈信息是编程 人员和维护人员无需关注的内容。下面的实施例中,将拦截器代码作为预设删除标识,将未知来源标记代码、有效信息关联代码作为预设代码,以及将有效信息关联代码作为预设代码时,仅删除预设终点特征所在行的代码,都是为了满足确定出的待删除堆栈信息是编程人员和维护人员无需关注的内容的要求。
在该步骤中,当步骤S101中查找到预设删除标识后,确定待处理堆栈日志中与预设删除标识对应的待删除信息。在本发明具体实施的过程中,有多种不同的方式确定与预设删除标识对应的待删除堆栈信息。
例如,如图3所示,在本发明的一种具体实施方式中,预设删除标识为拦截器代码,步骤S102可以包括:
在步骤S301中,在待处理堆栈日志中查找与拦截器代码对应的预设起点特征和预设终点特征。
在步骤S302中,根据预设起点特征和预设终点特征识别出待处理堆栈日志中的待删除堆栈信息。
在图3所示的具体实施方式中,预设删除标识为拦截器代码,在确定与预设删除标识对应的待删除堆栈信息时,首先在待处理堆栈日志中查找与拦截器代码对应的预设起点特征和预设终点特征,然后根据查找到的预设起点特征和预设终点特征识别出待处理堆栈日志中的待删除堆栈信息。
具体地,查找与拦截器代码对应的预设起点特征和预设终点特征的方式有多种,例如,在本发明的一种具体实施方式中,步骤S301可以包括:
在待处理堆栈日志中查找位于拦截器代码前面的和后面的、且与拦截器代码相邻的预设代码。
将位于拦截器代码前面的、且与拦截器代码相邻的预设代码作为预设起点特征,将位于拦截器代码后面的、且与拦截器代码相邻的预设代码作为预设终点特征。
该具体实施方式中的相邻是指:在拦截器代码和与拦截器代码相邻的预设代码之间不存在与该预设代码相同的代码,但可以存在与该预设代码不同的其他代码。
可以理解的是,在本发明具体实施过程中,可以在产生多个(例如可以是2个、3个、4个等)拦截器代码时,对堆栈日志进行一次处理,此时,有的拦截器代码前面或后面就可能出现多个预设代码,所以针对每一个拦截器代码,需在该拦截器代码前面和后面查找与其相邻的预设代码。也可以每产生一个拦截器代码,就对堆栈日志进行一次处理,此时拦截器代码前面和后面各存在一个预设代码,所以拦截器代码与预设代码之间必是相邻的。
另外,该具体实施方式仅仅是步骤S301的一种实现方式,步骤S301还可以有其他的实现方式,例如,可以在拦截器代码前面的代码中查找第一预设代码,并将该第一预设代码作为预设起点特征,然后在拦截器后面的代码中查找第二预设代码,并将该第二预设代码作为预设终点特征。进一步地,在步骤S302中,将位于第一预设代码所在行和第二预设代码所在行之间的代码作为待删除堆栈信息。
进一步地,在该具体实施方式中,预设代码可以有多种呈现形式,该具体实施方式的预设代码呈现形式不同时,步骤S302的执行方式也不同,下面举例说明:
例如,在本发明的一种具体实施方式中,预设代码可以为有效信息关联代码(如可以是图2中所示的purchaseCheckArrangementInfo),此时,步骤S302可以包括:
将预设终点特征所在行的代码,以及位于预设起点特征所在行和预设终点特征所在行之间的代码确定为待处理堆栈日志中的待删除堆栈信息。
这里预设终点特征是指位于拦截器代码后面的、且与拦截器代码相邻的有效信息关联代码,这里的预设起点特征是指位于拦截器代码前面的,且与拦截器代码相邻的有效信息关联代码。这里所确定的待删除堆栈信息中不包括预设起点特征所在行的代码。该具体实施方式运用在图2中时,将图2虚线框中的代码识别为待删除堆栈信息。
又例如,在本发明的另一种具体实施方式中,预设代码可以为未知来源标记代码(如可以是图2中所示的Unknown Source),此时,步骤S302可以包括:
将预设起点特征所在行的代码和预设终点特征所在行的代码,以及位于预设起点特征所在行和预设终点特征所在行之间的代码确定为待处理堆栈日志中的待删除堆栈信息。
这里预设终点特征是指位于拦截器代码后面的、且与拦截器代码相邻的未知来源标记代码,这里的预设起点特征是指位于拦截器代码前面的,且与拦截器代码相邻的未知来源标记代码。该具体实施方式运用在图2中时,将图2虚线框中的代码识别为待删除堆栈信息。
可以理解的是,预设代码还可以是拦截器代码前后均出现的其他代码。例如,以图2进行说明,预设代码还可以是invoke。
此外,除前述具体实施方式外,在本发明具体实施的过程中,步骤S102还可以有其他实施方式,例如:可以将预设删除标识所在行的代码识别为待删除堆栈信息。以图2进行说明,当预设删除标识为拦截器代码时,可将拦截器代码所在行的代码识别为待删除堆栈信息;当预设删除标识为invoke和Proxy时,将invoke和Proxy所在行的代码识别为待删除信息,由图2可知,包括预设删除标识的行可以有多个。
在步骤S103中,将待删除堆栈信息从待处理堆栈日志中进行删除,得到目标堆栈日志。
在该步骤中,直接将步骤S102中确定出的待删除堆栈信息从待处理堆栈日志中进行删除,实现对待处理堆栈日志的精简,得到目标堆栈日志。例如,当步骤S301中的预设起点特征和预设终点特征为有限信息关联代码或未知来源标记代码时,该步骤运用到图2中,将图2虚线框中的代码进行删除。由图2可知,目标堆栈日志与待处理堆栈日志相比,代码数量大量减少。
此外,需要说明的是,上述在描述本发明的技术方案的过程中,仅仅是利用图2进行说明,在本发明具体实施过程中,待处理堆栈日志中的代理标记代码、拦截器代码、有效信息关联代码、未知来源标记代码等并不限于图2中所示的代码,根据实际情况,待处理堆栈日志中的代理标记代码、拦截器代码、有效信息关联代码、未知来源标记代码等还可以有多种其他表现形式。
本发明实施例提供的一种堆栈日志处理方法,通过查找到的待处理堆栈日志中的预设删除标识,确定待处理堆栈日志中的待删除堆栈信息,进一步地,对确定出的待删除堆栈信息从待处理堆栈日志中进行删除,得到目标堆栈日志。
当应用本发明实施例的方案时,对待处理堆栈日志中确定出的待删除堆栈信息进行删除,进而得到目标堆栈日志,精简掉了堆栈日志中编程人员和维护人员不需要关注的内容,所以本发明的技术方案能够减小记录堆栈日志的磁盘开销,且能够减小编程人员和维护人员查看堆栈日志的工作量。
另外,需要说明的是,前述方法实施例中,相同的步骤可以相互借鉴,不同的步骤可以自由组合,并且不同的步骤组合后形成的方案,也属于本发明的保护范围。
图4为根据一示例性实施例示出的一种堆栈日志处理装置的框图,如图4所示,该装置可以包括:
预设删除标识查找模块11,用于查找待处理堆栈日志中的预设删除标识;
待删除堆栈信息确定模块12,用于确定与所述预设删除标识对应的待删除堆栈信息;
删除模块13,用于将所述待删除堆栈信息从所述待处理堆栈日志中进行删除,得到目标堆栈日志。
本发明实施例提供的一种堆栈日志处理装置,通过查找到的待处理堆栈日志中的预设删除标识,确定待处理堆栈日志中的待删除堆栈信息,进一步地,对确定出的待删除堆栈信息从待处理堆栈日志中进行删除,得到目标堆栈日志。
当应用本发明实施例的方案时,对待处理堆栈日志中确定出的待删除堆栈信息进行 删除,进而得到目标堆栈日志,精简掉了堆栈日志中编程人员和维护人员不需要关注的内容,所以本发明的技术方案能够减小记录堆栈日志的磁盘开销,且能够减小编程人员和维护人员查看堆栈日志的工作量。
其中,所述预设删除标识为拦截器代码;
所述待删除堆栈信息确定模块12,包括:
查找单元,用于在所述待处理堆栈日志中查找与所述拦截器代码对应的预设起点特征和预设终点特征;
待删除堆栈信息识别单元,用于根据所述预设起点特征和所述预设终点特征识别出所述待处理堆栈日志中的待删除堆栈信息。
其中,所述查找单元,包括:
预设代码查找子单元,用于在所述待处理堆栈日志中查找位于所述拦截器代码前面的和后面的、且与所述拦截器代码相邻的预设代码;
特征确定子单元,用于将位于所述拦截器代码前面的、且与所述拦截器代码相邻的预设代码作为所述预设起点特征,将位于所述拦截器代码后面的、且与所述拦截器代码相邻的预设代码作为所述预设终点特征。
其中,所述预设代码为有效信息关联代码;
所述待删除堆栈信息识别单元,用于将所述预设终点特征所在行的代码,以及位于所述预设起点特征所在行和所述预设终点特征所在行之间的代码确定为所述待处理堆栈日志中的待删除堆栈信息。
其中,所述预设代码为未知来源标记代码;
所述待删除堆栈信息识别单元,用于将所述预设起点特征所在行的代码和所述预设终点特征所在行的代码,以及位于所述预设起点特征所在行和所述预设终点特征所在行之间的代码确定为所述待处理堆栈日志中的待删除堆栈信息。
其中,所述待删除堆栈信息确定模块12,用于将所述预设删除标识所在行的代码识别为待删除堆栈信息。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常 识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。