一种日志识别方法、装置、终端及存储介质与流程

专利2022-06-29  88


本发明涉及计算机运维技术领域,具体涉及一种日志识别方法、装置、终端及存储介质。



背景技术:

目前为了提升定位的效率,避免多次重复定位,在通过查看服务器日志来定位后台出现的问题时,一般通过智能化识别程序去自动定位问题。现有技术采用监督的机器学习模型svm(支持向量机)算法对大量的日志和人工标记的定位结论的样本进行训练,得到一个有效的模型来进行自动定位。此方法存在2个很大的问题,第一:需要大量的样本数量,一般情况下无法拿到大量的标记数据;第二:需要耗费很多资源,因为要训练的样本日志文本一般都比较长。故利用svm算法去做智能定位,并不是很实用,现有的其它机器学习算法也都存在类似的问题。

此外,还有一种常见的解决方案,首先通过人工标记一些问题对应的关键日志,然后再由程序查找请求日志中是否存在关键日志,如果在请求日志中查找到关键日志,确定请求日志出现了此问题,但是,请求日志里存在较多的变量值,只要请求参数不同,变量值内容可能就不一样,同样日志行也会跟着标记的日志行有略微的差别,识别率较低。



技术实现要素:

鉴于以上内容,有必要提出一种日志识别方法、装置、终端及存储介质,在全量识别不了存储日志中的关键日志行时,通过对关键日志行进行至少一次切割后再识别,提高了日志的识别精度。

本发明的第一方面提供一种日志识别方法,所述方法包括:

接收用户输入的日志查询请求,其中,所述日志查询请求中携带有待查询的日志id及关键日志行;

获取与所述日志id对应的存储日志;

全量识别所述存储日志中是否包括所述关键日志行;

当所述存储日志中不包括所述关键日志行时,对所述关键日志行进行第一次切割,得到多个第一子日志;

识别所述存储日志中是否存在第一目标日志行与所述多个第一子日志中的至少一个第一子日志一致;

当所述存储日志中存在所述第一目标日志行时,输出所述日志查询请求结果。

优选的,所述当所述存储日志中不包括所述关键日志行时,对所述关键日志行进行第一次切割,得到多个第一子日志包括:

计算所述关键日志行的长度;

当所述关键日志行的长度小于预设第一长度时,确定第一次切割的第一起始下标和对应所述第一起始下标的第一结束下标,并根据所述第一起始下标和所述第一结束下标对所述关键日志行进行第一次切割;

当所述关键日志行的长度大于或者等于所述预设第一长度时,确定第一次切割的第二起始下标和对应所述第二起始下标的第二结束下标,并根据所述第二起始下标和所述第二结束下标对所述关键日志行进行第一次切割。

优选的,所述确定第一次切割的第一起始下标和对应所述第一起始下标的第一结束下标包括:

确定所述第一起始下标为1,并在每轮第一次切割时将所述第一起始下标增加1作为新的第一起始下标;

在每轮第一次切割时将所述预设第一长度与预设第一切割比值的乘积进行取整得到第一取整数据,并确定所述第一起始下标和所述第一取整数据之和再减去1得到的值作为所述第一起始下标对应的第一结束下标;

当所述第一起始下标等于预设第一固定值时或者所述第一结束下标等于所述关键日志行的长度时,结束所述第一次切割。

优选的,所述确定第一次切割的第二起始下标和对应所述第二起始下标的第二结束下标包括:

在每轮第一次切割时将1和所述预设第一切割比值相减之差和所述预设第一长度相乘的乘积除以预设第二固定值之商数进行取整得到第二取整数据,并确定n减去1之差和所述第二取整数据相乘的乘积再加上1得到的值作为第二起始下标,其中,n为从1开始取整的正整数;

在每轮第一切割时确定所述第二起始下标和所述第一取整数据相加之和再减去1得到的值作为所述第二起始下标对应的第二结束下标;

当所述第二起始下标等于预设第二固定值时或者所述第二结束下标等于所述关键日志行的长度时,结束所述第一次切割。

优选的,当所述存储日志中不存在所述第一目标日志行时,所述方法还包括:

对所述关键日志行进行至少一次第二次切割,得到对应所述至少一次第二次切割的多个第二子日志;

识别所述存储日志中是否存在第二目标日志行与所述多个第二子日志中的至少一个第二子日志一致;

当所述存储日志中存在所述第二目标日志行时,输出所述日志查询请求结果;

当所述存储日志中不存在所述第二目标日志行时,在所述日志查询请求中新增关键日志行或者重新确定关键日志行。

优选的,所述获取与所述日志id对应的存储日志包括:

获取所有存储日志;

识别所述所有存储日志的第一id;

从所述第一id中筛选出与所述日志id对应的目标id;

获取与所述目标id对应的存储日志。

优选的,在所述获取与所述目标id对应的存储日志之后,所述方法还包括:

获取所述日志查询请求中携带的操作类型id及操作步骤标识码id;

从所述存储日志中获取与所述操作类型id对应的目标操作类型;

从所述目标操作类型中获取与所述操作步骤标识码id对应的目标操作步骤;

将所述目标操作步骤对应的存储日志确定为与所述日志id对应的最终存储日志。

本发明的第二方面提供一种日志识别装置,所述装置包括:

接收模块,用于接收用户输入的日志查询请求,其中,所述日志查询请求中携带有待查询的日志id及关键日志行;

获取模块,用于获取与所述日志id对应的存储日志;

全量识别模块,用于全量识别所述存储日志中是否包括所述关键日志行;

切割模块,用于当所述存储日志中不包括所述关键日志行时,对所述关键日志行进行第一次切割,得到多个第一子日志;

识别模块,用于识别所述存储日志中是否存在第一目标日志行与所述多个第一子日志中的至少一个第一子日志一致;

输出模块,用于当所述存储日志中存在所述第一目标日志行时,输出所述日志查询请求结果。

本发明的第三方面提供一种终端,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述日志识别方法。

本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述日志识别方法。

综上所述,本发明所述的一种日志识别方法、装置、终端及存储介质,通过全量识别所述存储日志中是否有所述关键日志行快速的排除了日志查询请求出现问题的概率为100%的日志查询请求,当全量识别在所述存储日志中没有识别到所述关键日志行时,对所述关键日志行进行第一次切割后继续识别,可以进一步的排除掉日志查询请求出现问题的概率较大的日志查询请求,当第一次切割后还未识别到所述关键日志行时进行至少一次第二次切割后再进行识别,通过多次切割后识别可以提高日志查询请求的识别精度。

附图说明

图1是本发明实施例一提供的日志识别方法的流程图。

图2是本发明实施例二提供的日志识别装置的结构图。

图3是本发明实施例三提供的终端的结构示意图。

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

实施例一

图1是本发明实施例一提供的日志识别方法的流程图。

在本实施例中,所述日志识别方法可以应用于终端中,对于需要进行日志识别的终端,可以直接在终端上集成本发明的方法所提供的日志识别的功能,或者以软件开发工具包(softwaredevelopmentkit,skd)的形式运行在终端中。

如图1所示,所述日志识别方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。

s11:接收用户输入的日志查询请求,其中,所述日志查询请求中携带有待查询的日志id及关键日志行。

本实施例中,系统的操作日志用来跟踪用户对应用系统的各种数据操作和使用情况,系统的操作日志中记录有日志id、用户名、操作类型等。其中,不同的日志对应不同的id,所述操作类型是指用户操作的业务的类型,如取款、入库、采购等,当用户在操作业务系统的过程中出现故障时,会反馈给用户一个日志查询接口,所述日志查询接口可以是用户操作界面,所述用户操作界面上可以显示系统返回的所有操作日志,用户通过所述日志查询接口对所述操作日志中的关键日志行进行标注,在用户标注完关键日志行后,系统即可将携带有所述关键日志行的日志查询请求输入到系统中进行日志识别。

s12:获取与所述日志id对应的存储日志。

本实施例中,系统在用户操作的过程中,会以日志的形式记录用户的多个操作类型及每个操作类型中的多个操作步骤,每个操作类型对应一个操作类型id,每个操作类型中的每个操作步骤对应一个标识码,所述标识码用于区分同一个操作类型中的不同操作步骤。

优选的,所述获取与所述日志id对应的存储日志包括:

获取所有存储日志;

识别所述所有存储日志的第一id;

从所述第一id中筛选出与所述日志id对应的目标id;

获取与所述目标id对应的存储日志。

本实施例中,所述日志id是开始请求系统时生成一个全局唯一的标识码。所述日志id记录所有存储日志,所述所有存储日志中包括多个第一id,每个第一id对应有存储日志,将每个所述第一id与所述日志id进行识别得到目标id,从所述所有存储日志中获取与所述目标id对应的存储日志。

进一步的,为了快速从所述目标id对应的存储日志中快速定位出现错误的操作步骤所在的日志行,所述日志查询请求中不仅可以携带有待查询的日志id及关键日志行,还可以携带有操作类型id及操作步骤标识码id,则此时在获取与所述目标id对应的存储日志之后,所述方法还可以包括:

从所述存储日志中获取与所述操作类型id对应的目标操作类型;

从所述目标操作类型中获取与所述操作步骤标识码id对应的目标操作步骤;

将所述目标操作步骤对应的存储日志确定为与所述日志id对应的最终存储日志。

本实施例中,所述存储日志包括多个操作类型对应的存储日志,从多个操作类型中获取与所述日志查询请求中的操作类型id对应的目标操作类型。根据所述目标操作类型获取与所述日志查询请求中的操作步骤标识码id对应的存储日志作为最终存储日志。

示例性的,用户输入的日志查询请求携带的日志id所对应的目标操作类型:取款id1,操作步骤标识码为id12;所述存储日志中包括:取款id1、入库id2和采购id3,所述取款id1包括操作步骤标识码:插卡的标识码:id11、输入密码的标识码:id12、输入金额的标识码:id13和退卡的标识码:id14,从所述存储日志中识别操作类型取款id1对应的所有操作步骤,然后从所述所有操作步骤中获取与所述操作步骤标识码id12对应的输入密码的标识码id12对应的存储日志作为最终存储日志。

本实施例中,将所述日志id对应操作类型中的具体的操作步骤的日志作为所述日志id对应的存储日志,减少了数据的处理量,加快了对故障系统的定位的效率。

s13:全量识别所述存储日志中是否包括所述关键日志行。

本实施例中,当在所述存储日志中识别到所述关键日志行时,表明所述日志查询请求出现问题的概率为100%。因而,对于所述日志查询请求中的存储日志出现问题的概率为100%的情况下,先对所述存储日志中的关键日志行进行全量识别,能够快速定位出现问题的地方。

所述全量识别为现有技术,本发明在此不做详细阐述。

s14:当所述存储日志中不包括所述关键日志行时,对所述关键日志行进行第一次切割,得到多个第一子日志。

本实施例中,在全量识别了所述存储日志但并未发现所述存储日志中包括所述关键日志行之后,可以根据预设的第一规则将所述关键日志行切割成多段,切割后的每一段作为一个第一子日志,所述预设的第一规则可以预先按照关键日志行的字符总长度的长度比例进行设置,如可以设置为关键日志行的字符总长度的长度比例的80%。

优选的,当所述存储日志中不包括所述关键日志行时,对所述关键日志行进行第一次切割,得到多个第一子日志包括:

计算所述关键日志行的长度;

当所述关键日志行的长度小于预设第一长度时,确定第一次切割的第一起始下标和对应所述第一起始下标的第一结束下标,并根据所述第一起始下标和所述第一结束下标对所述关键日志行进行第一次切割;

当所述关键日志行的长度大于或者等于所述预设第一长度时,确定第一次切割的第二起始下标和对应所述第二起始下标的第二结束下标,并根据所述第二起始下标和所述第二结束下标对所述关键日志行进行第一次切割。

本实施例中,可以预先设置预设第一长度,如可以设置为100。将所述关键日志行的长度与所述预设第一长度进行比对,根据所述比对结果确定所述第一次切割的起始下标和结束下标,不同的对比结果确定第一次切割的不同的起始下标和结束下标。根据不同的所述起始下标和所述结束下标将所述关键日志行中的日志进行第一次切割。

在一个可选的实施例中,所述确定第一次切割的第一起始下标和对应所述第一起始下标的第一结束下标包括:

确定所述第一起始下标为1,并在每轮第一次切割时将所述第一起始下标增加1作为新的第一起始下标;

在每轮第一次切割时将所述预设第一长度与预设第一切割比值的乘积进行取整得到第一取整数据,并确定所述第一起始下标和所述第一取整数据之和再减去1得到的值作为所述第一起始下标对应的第一结束下标;

当所述第一起始下标等于预设第一固定值时或者所述第一结束下标等于所述关键日志行的长度时,结束所述第一次切割。

本实施例中,当所述关键日志行的长度小于预设第一长度时,确定第一次切割的第一起始下标和对应所述第一起始下标的第一结束下标,可以预先设置预设第一切割比例和第一固定值,如所述预设第一切割比例可以设置为80%,所述第一固定值可以设置为10,确定第一轮第一次切割的第一起始下标为1,根据所述第一轮第一次切割的第一起始下标、所述预设第一长度和所述预设第一切割比值确定所述第一轮第一次切割的第一起始下标对应的第一结束下标。还可以根据所述第一轮第一次切割的第一起始下标确定出第二轮第一次切割的第一起始下标,同时根据第二轮第一次切割的第一起始下标、所述预设第一长度和所述预设第一切割比值确定所述第二轮第一次切割的第一起始下标对应的第二轮第一次切割的第一结束下标。依此类推,直至所述第一起始下标等于预设第一固定值时或者所述第一结束下标等于所述关键日志行的长度时结束切割,反之,若所述第一下标不等于预设第一固定值时或者所述第一结束下标不等于所述关键日志行的长度时,不结束切割。

示例性的,关键日志行的日志为“调用计费系统出现异常”,计算所述关键日志行的日志的长度size=10,所述关键日志行的日志长度10小于所述第一预设长度100,确定第一轮第一次切割的第一起始下标为1,根据所述第一轮第一次切割的第一起始下标为1确定出第二轮第一次切割的第一起始下标为2;根据所述第二轮第一次切割的第一起始下标为2确定出第三轮第一次切割的第一起始下标为3;依此类推,直至所述第一起始下标等于预设第一固定值,第一次切割结束。确定每轮第一次切割时的第一取整数据等于所述预设第一长度与预设第一切割比值的乘积,也就是int(10×80%),根据所述第一起始下标和所述第一取整数据之和再减去1得到的值确定每轮的第一次切割的第一结束下标。例如:第一轮第一次切割的第一起始下标为1,第一取整数据为int(10×80%),得到第一轮第一次切割的第一结束下标=1 int(10×80%)-1=8,则第一轮第一次切割得到的第一子日志为“调用计费系统出现”;第二轮第一次切割的第一起始下标为2,第一取整数据为int(10×80%),得到第二轮第一次切割的第一结束下标=2 int(10×80%)-1=9,则第二轮第一次切割得到的第一子日志为“用计费系统出现异”;第三轮第一次切割的第一起始下标为3,第一取整数据为int(10×80%),得到第三轮第一次切割的第一结束下标=3 int(10×80%)-1=10,则第三轮第一次切割得到的第一子日志为“计费系统出现异常”,由于第三轮第一次切割的第一结束下标等于所述关键日志行的长度10,故切割结束。

在一个可选的实施例中,所述确定第一次切割的第二起始下标和对应所述第二起始下标的第二结束下标包括:

在每轮第一次切割时将1和所述预设第一切割比值相减之差和所述预设第一长度相乘的乘积除以预设第二固定值之商数进行取整得到第二取整数据,并确定n减去1之差和所述第二取整数据相乘的乘积再加上1得到的值作为第二起始下标,其中,n为从1开始取整的正整数;

在每轮第一切割时确定所述第二起始下标和所述第一取整数据相加之和再减去1得到的值作为所述第二起始下标对应的第二结束下标;

当所述第二起始下标等于预设第二固定值时或者所述第二结束下标等于所述关键日志行的长度时,结束所述第一次切割。

本实施例中,当所述关键日志行的长度大于或者等于所述预设第一长度时,确定第一次切割的第二起始下标和对应所述第二起始下标的第二结束下标,可以预先设置第二固定值,所述第二固定值可以设置为10,确定n为从1开始取整的正整数,根据n的取值计算所述第一轮第一次切割的第二起始下标,首先将1和所述预设第一切割比值相减之差和所述预设第一长度相乘的乘积除以预设第二固定值之商数进行取整得到第二取整数据,然后将n减去1之差和所述第二取整数据相乘的乘积再加上1得到所述第一轮第一次切割的第二起始下标,根据所述第二起始下标和所述第一取整数据确定所述第一轮第一次切割的第二起始下标对应的第二结束下标。直至所述第二起始下标等于预设第二固定值时或者所述第二结束下标等于所述关键日志行的长度时第一次切割结束。

示例性的,关键日志行的日志为“调用电能量自动计费系统利用计算机……互联网构建的电能量采集和自动化系统计费系统出现异常”,计算所述关键日志行的日志的长度size=120,所述关键日志行的长度120大于所述第一预设长度100,确定每轮第一次切割时的第二取整数据等于1和所述预设第一切割比值相减之差和所述预设第一长度相乘的乘积除以第二固定值之商数,也就是所述第二取整数据=int((1-80%)×120÷10),所述第一取整数据=int(120×80%)。

当n=1,第二取整数据为int((1-80%)×120÷10)时,确定第一轮第一次切割的第二起始下标=1 (n-1)×int((1-80%)×120÷10)=1,根据所述第一轮第一次切割的第二起始下标和所述第一取整数据得到对应的第一轮第一次切割的第二结束下标=1 int(120×80%)-1=96,则第一次切割得到的第一个第一子日志为“调用电能量自动计费系统利用计算机……互”;当n=2,第二取整数据为int((1-80%)×120÷10)时,确定第二轮第一次切割的第二起始下标=1 (n-1)×int((1-80%)×120÷10)=3,根据所述第二轮第一次切割的第二起始下标和所述第一取整数据得到对应的第二轮第一次切割的第二结束下标=3 int(120×80%)-1=98,则第一次切割得到的第二个第一子日志为“电能量自动计费系统利用计算机……互联网”;当n=3,第二取整数据为int((1-80%)×120÷10)时,确定第三轮第一次切割的第二起始下标=1 (n-1)×int((1-80%)×120÷10)=5,根据所述第三轮第一次切割的第二起始下标和所述第一取整数据得到对应的第三轮第一次切割的第二结束下标=5 int(120×80%)-1=100,则第一次切割得到的第三个第一子日志为“电能量自动计费系统利用计算机……互联网构建”,直至n=10或者第二结束下标等于120时第一次切割结束。

本实施例中,通过将全量识别无法识别出的关键日志行中的日志第一次切割,切割成多段第一子日志后再识别,提高了关键日志行被识别出的成功率。

s15:识别所述存储日志中是否存在第一目标日志行与所述多个第一子日志中的至少一个第一子日志一致。

本实施例中,所述第一目标日志行是指所述存储日志中与所述多个第一子日志中任意一个第一子日志一致的日志行,当所述关键日志行中的日志经过第一次切割得到多个第一子日志之后,在所述存储日志中识别是否存在任意一个第一子日志。

优选的,在所述识别所述存储日志中是否存在第一目标日志行与所述多个第一子日志中的至少一个第一子日志一致之前,所述方法还包括:

删除相同的第一子日志。

本实施例中,当所述关键日志行被切割成多段第一子日志之后,将相同的第一子日志进行删除,保留不同的第一子日志,减少数据的处理量,加快的关键日志行的识别效率。

s16:当所述存储日志中存在所述第一目标日志行时,输出所述日志查询请求结果。

本实施例中,所述日志查询请求结果包括:日志查询请求出现问题的概率、日志查询请求对应的错误信息位置、预先存储的错误修改方法、所述日志查询请求已识别的标识信息等。

本实施例,通过查找到任意一个第一子日志确定所述日志查询请求被识别,避免了关键日志行太长而导致的无法识别到的问题,提高了关键日志行被识别出的成功率。

进一步的,当所述存储日志中不存在所述第一目标日志行时,所述方法还包括:

对所述关键日志行进行至少一次第二次切割,得到对应所述至少一次第二次切割的多个第二子日志;

识别所述存储日志中是否存在第二目标日志行与所述多个第二子日志中的至少一个第二子日志一致;

当所述存储日志中存在所述第二目标日志行时,输出所述日志查询请求结果;

当所述存储日志中不存在所述第二目标日志行时,在所述查询请求日志中新增关键日志行或者重新确定关键日志行。

本实施例中,可以进行至少一次第二次切割,当在所述关键日志中没有查找到所述第二目标日志时,可以再进行一次第二次切割,依次类推,直至切割后可以在所述关键日志中查找到切割后的任意一个第二目标日志,第二次切割结束。本发明所述的每一次第二次切割的起始下标和结束下标不同,但是每一次第二次切割的发明构思相同,具体的切割过程同第一次切割。

示例性的,所述关键日志行的长度为size=10,预设第二长度为50,所述关键日志行的长度10小于预设第二长度时,预设第三固定值为10,进行至少一次第二次切割,预设第一次第二切割比例为60%,确定第一次第一轮第二次切割的第三起始下标为1,第一次第一轮第二次切割的第三结束下标=1 int(size×第一次第二切割比例60%)-1;预设第二次第二切割比例为50%,确定第二次第一轮第二次切割的第三起始下标为1,第二次第一轮第二次切割的第三结束下标=1 int(size×第二次第二切割比例50%)-1;根据不同的第三开始下标和第三结束下标进行不同的第二次切割,每一次所述第二次切割过程同第一次切割过程。

示例性的,所述关键日志行的长度为size=120,预设第二长度为50,所述关键日志行的长度120大于等于预设第二长度时,预设第三固定值为10,进行至少一次第二次切割,所述预设第一次第二切割比例为60%,当n=1时,确定第一次第一轮第二次切割的第四起始下标=1 (n-1)×int((1-60%)×size÷10)=1,第一次第一轮第二次切割的第四结束下标=1 int(120×60%)-1=72;所述预设第二次第二切割比例为50%,当n=1时,确定第二次第一轮第二次切割的第四起始下标=1 (n-1)×int((1-50%)×120÷10)=1,第二次第一轮第二次切割的第四结束下标=1 int(120×50%)-1=60;根据不同的第四开始下标和第四结束下标进行不同的第二次切割,每一次所述第二次切割过程同第一次切割过程。

本实施例中,经过全量识别、所述第一次切割后识别和所述至少一次第二次切割后还未识别到所述日志查询请求中的关键日志行,可以在所述日志查询请求中增加关键日志行或者重新确定关键日志行进行识别,增加了系统能识别出的问题数量。

本实施例中,通过设置不同的第二切割比值对所述关键日志行中的日志进行至少一次第二次切割,其中,所述第一切割比值大于所述第二切割比值,即对所述关键日志行进行了更加精细的划分,进一步提高了关键行日志的识别的成功率。

进一步的,当所述输出所述日志查询请求结果之后,所述方法还包括:

关联所述多个第一子日志、所述多个第二子日志至所述日志查询请求中。

本实施例中,将所述多个第一子日志和所述多个第二子日志关联至所述日志查询请求中,当用户第二次输入所述日志查询请求时,不用进行重复切割,直接进行识别,提高了所述日志查询请求的识别速度。

综上所述,本实施例所述的日志识别方法,通过全量识别所述存储日志中是否有所述关键日志行快速的排除了日志查询请求出现问题的概率为100%的日志查询请求,当全量识别在所述存储日志中没有识别到所述关键日志行时,对所述关键日志行进行第一次切割后继续识别,可以进一步的排除掉日志查询请求出现问题的概率较大的日志查询请求,当第一次切割后还未识别到所述关键日志行时进行更加精细的至少一次第二次切割后再进行识别,提高了日志查询请求的识别精度。

此外,通过对所述日志查询请求中日志进行简单的切割后一致文本,提高了识别的速度,并且只针对日志查询请求中的关键日志行进行了标注,只要关键日志行标注的准确且独特,在一定的程度上可以提高识别率。

实施例二

图2是本发明实施例二提供的日志识别装置的结构图。

在一些实施例中,所述日志识别装置20可以包括多个由程序代码段所组成的功能模块。所述日志识别装置20中的各个程序段的程序代码可以存储于终端的存储器中,并由所述至少一个处理器所执行,以执行(详见图1描述)日志的识别。

本实施例中,所述日志识别装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块201、获取模块202、确定模块203、全量识别模块204、切割模块205、识别模块206、删除模块207及输出模块208。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

接收模块201:用于接收用户输入的日志查询请求,其中,所述日志查询请求中携带有待查询的日志id及关键日志行。

本实施例中,系统的操作日志用来跟踪用户对应用系统的各种数据操作和使用情况,系统的操作日志中记录有日志id、用户名、操作类型等。其中,不同的日志对应不同的id,所述操作类型是指用户操作的业务的类型,如取款、入库、采购等,当用户在操作业务系统的过程中出现故障时,会反馈给用户一个日志查询接口,所述日志查询接口可以是用户操作界面,所述用户操作界面上可以显示系统返回的所有操作日志,用户通过所述日志查询接口对所述操作日志中的关键日志行进行标注,在用户标注完关键日志行后,系统即可将携带有所述关键日志行的日志查询请求输入到系统中进行日志识别。

获取模块202:用于获取与所述日志id对应的存储日志。

本实施例中,系统在用户操作的过程中,会以日志的形式记录用户的多个操作类型及每个操作类型中的多个操作步骤,每个操作类型对应一个操作类型id,每个操作类型中的每个操作步骤对应一个标识码,所述标识码用于区分同一个操作类型中的不同操作步骤。

优选的,所述获取模块202获取与所述日志id对应的存储日志包括:

获取所有存储日志;

识别所述所有存储日志的第一id;

从所述第一id中筛选出与所述日志id对应的目标id;

获取与所述目标id对应的存储日志。

本实施例中,所述日志id是开始请求系统时生成一个全局唯一的标识码。所述日志id记录所有存储日志,所述所有存储日志中包括多个第一id,每个第一id对应有存储日志,将每个所述第一id与所述日志id进行识别得到目标id,从所述所有存储日志中获取与所述目标id对应的存储日志。

进一步的,为了快速从所述目标id对应的存储日志中快速定位出现错误的操作步骤所在的日志行,所述日志查询请求中不仅可以携带有待查询的日志id及关键日志行,还可以携带有操作类型id及操作步骤标识码id,则此时在获取与所述目标id对应的存储日志之后,所述获取模块202:还用于从所述存储日志中获取与所述操作类型id对应的目标操作类型。

所述获取模块202:还用于从所述目标操作类型中获取与所述操作步骤标识码id对应的目标操作步骤。

确定模块203:用于将所述目标操作步骤对应的存储日志确定为与所述日志id对应的最终存储日志。

本实施例中,所述存储日志包括多个操作类型对应的存储日志,从多个操作类型中获取与所述日志查询请求中的操作类型id对应的目标操作类型。根据所述目标操作类型获取与所述日志查询请求中的操作步骤标识码id对应的存储日志作为最终存储日志。

示例性的,用户输入的日志查询请求携带的日志id所对应的目标操作类型:取款id1,操作步骤标识码为id12;所述存储日志中包括:取款id1、入库id2和采购id3,所述取款id1包括操作步骤标识码:插卡的标识码:id11、输入密码的标识码:id12、输入金额的标识码:id13和退卡的标识码:id14。从所述存储日志中识别操作类型取款id1对应的所有操作步骤,然后从所述所有操作步骤中获取与所述操作步骤标识码id12对应的输入密码的标识码id12对应的存储日志作为最终存储日志。

本实施例中,将所述日志id对应操作类型中的具体的操作步骤的日志作为所述日志id对应的存储日志,减少了数据的处理量,加快了对故障系统的定位的效率。

全量识别模块204:用于全量识别所述存储日志中是否包括所述关键日志行。

本实施例中,当在所述存储日志中识别到所述关键日志行时,表明所述日志查询请求出现问题的概率为100%。因而,对于所述日志查询请求中的存储日志出现问题的概率为100%的情况下,先对所述存储日志中的关键日志行进行全量识别,能够快速定位出现问题的地方。

所述全量识别为现有技术,本发明在此不做详细阐述。

切割模块205:用于当所述存储日志中不包括所述关键日志行时,对所述关键日志行进行第一次切割,得到多个第一子日志。

本实施例中,在全量识别了所述存储日志但并未发现所述存储日志中包括所述关键日志行之后,可以根据预设的第一规则将所述关键日志行切割成多段,切割后的每一段作为一个第一子日志,所述预设的第一规则可以预先按照关键日志行的字符总长度的长度比例进行设置,如可以设置为关键日志行的字符总长度的长度比例的80%。

优选的,所述切割模块205用于当所述存储日志中不包括所述关键日志行时,对所述关键日志行进行第一次切割,得到多个第一子日志包括:

计算所述关键日志行的长度;

当所述关键日志行的长度小于预设第一长度时,确定第一次切割的第一起始下标和对应所述第一起始下标的第一结束下标,并根据所述第一起始下标和所述第一结束下标对所述关键日志行进行第一次切割;

当所述关键日志行的长度大于或者等于所述预设第一长度时,确定第一次切割的第二起始下标和对应所述第二起始下标的第二结束下标,并根据所述第二起始下标和所述第二结束下标对所述关键日志行进行第一次切割。

本实施例中,可以预先设置预设第一长度,如可以设置为100。将所述关键日志行的长度与所述预设第一长度进行比对,根据所述比对结果确定所述第一次切割的起始下标和结束下标,不同的对比结果确定第一次切割的不同的起始下标和结束下标。根据不同的所述起始下标和所述结束下标将所述关键日志行中的日志进行第一次切割。

在一个可选的实施例中,所述确定第一次切割的第一起始下标和对应所述第一起始下标的第一结束下标包括:

确定所述第一起始下标为1,并在每轮第一次切割时将所述第一起始下标增加1作为新的第一起始下标;

在每轮第一次切割时将所述预设第一长度与预设第一切割比值的乘积进行取整得到第一取整数据,并确定所述第一起始下标和所述第一取整数据之和再减去1得到的值作为所述第一起始下标对应的第一结束下标;

当所述第一起始下标等于预设第一固定值时或者所述第一结束下标等于所述关键日志行的长度时,结束所述第一次切割。

本实施例中,当所述关键日志行的长度小于预设第一长度时,确定第一次切割的第一起始下标和对应所述第一起始下标的第一结束下标,可以预先设置预设第一切割比例和第一固定值,如所述预设第一切割比例可以设置为80%,所述第一固定值可以设置为10,确定第一轮第一次切割的第一起始下标为1,根据所述第一轮第一次切割的第一起始下标、所述预设第一长度和所述预设第一切割比值确定所述第一轮第一次切割的第一起始下标对应的第一结束下标。还可以根据所述第一轮第一次切割的第一起始下标确定出第二轮第一次切割的第一起始下标,同时根据第二轮第一次切割的第一起始下标、所述预设第一长度和所述预设第一切割比值确定所述第二轮第一次切割的第一起始下标对应的第二轮第一次切割的第一结束下标。依此类推,直至所述第一起始下标等于预设第一固定值时或者所述第一结束下标等于所述关键日志行的长度时结束。

示例性的,关键日志行的日志为“调用计费系统出现异常”,计算所述关键日志行的日志的长度size=10,所述关键日志行的日志长度10小于所述第一预设长度100,确定第一轮第一次切割的第一起始下标为1,根据所述第一轮第一次切割的第一起始下标为1确定出第二轮第一次切割的第一起始下标为2;根据所述第二轮第一次切割的第一起始下标为2确定出第三轮第一次切割的第一起始下标为3;依此类推,直至所述第一起始下标等于预设第一固定值,第一次切割结束。确定每轮第一次切割时的第一取整数据等于所述预设第一长度与预设第一切割比值的乘积,也就是int(10×80%),根据所述第一起始下标和所述第一取整数据之和再减去1得到的值确定每轮的第一次切割的第一结束下标。例如:第一轮第一次切割的第一起始下标为1,第一取整数据为int(10×80%),得到第一轮第一次切割的第一结束下标=1 int(10×80%)-1=8,则第一轮第一次切割得到的第一子日志为“调用计费系统出现”;第二轮第一次切割的第一起始下标为2,第一取整数据为int(10×80%),得到第二轮第一次切割的第一结束下标=2 int(10×80%)-1=9,则第二轮第一次切割得到的第一子日志为“用计费系统出现异”;第三轮第一次切割的第一起始下标为3,第一取整数据为int(10×80%),得到第三轮第一次切割的第一结束下标=3 int(10×80%)-1=10,则第三轮第一次切割得到的第一子日志为“计费系统出现异常”,由于第三轮第一次切割的第一结束下标等于所述关键日志行的长度10,故切割结束。

在一个可选的实施例中,所述确定第一次切割的第二起始下标和对应所述第二起始下标的第二结束下标包括:

在每轮第一次切割时将1和所述预设第一切割比值相减之差和所述预设第一长度相乘的乘积除以预设第二固定值之商数进行取整得到第二取整数据,并确定n减去1之差和所述第二取整数据相乘的乘积再加上1得到的值作为第二起始下标,其中,n为从1开始取整的正整数;

在每轮第一切割时确定所述第二起始下标和所述第一取整数据相加之和再减去1得到的值作为所述第二起始下标对应的第二结束下标;

当所述第二起始下标等于预设第二固定值时或者所述第二结束下标等于所述关键日志行的长度时,结束所述第一次切割。

本实施例中,当所述关键日志行的长度大于或者等于所述预设第一长度时,确定第一次切割的第二起始下标和对应所述第二起始下标的第二结束下标,可以预先设置第二固定值,所述第二固定值可以设置为10,确定n为从1开始取整的正整数,根据n的取值计算所述第一轮第一次切割的第二起始下标,首先将1和所述预设第一切割比值相减之差和所述预设第一长度相乘的乘积除以预设第二固定值之商数进行取整得到第二取整数据,然后将n减去1之差和所述第二取整数据相乘的乘积再加上1得到所述第一轮第一次切割的第二起始下标,根据所述第二起始下标和所述第一取整数据确定所述第一轮第一次切割的第二起始下标对应的第二结束下标。直至所述第二起始下标等于预设第二固定值时或者所述第二结束下标等于所述关键日志行的长度时第一次切割结束。

示例性的,关键日志行的日志为“调用电能量自动计费系统利用计算机……互联网构建的电能量采集和自动化系统计费系统出现异常”,计算所述关键日志行的日志的长度size=120,所述关键日志行的长度120大于所述第一预设长度100,确定每轮第一次切割时的第二取整数据等于1和所述预设第一切割比值相减之差和所述预设第一长度相乘的乘积除以第二固定值之商数,也就是所述第二取整数据=int((1-80%)×120÷10),所述第一取整数据=int(120×80%)。

当n=1,第二取整数据为int((1-80%)×120÷10)时,确定第一轮第一次切割的第二起始下标=1 (n-1)×int((1-80%)×120÷10)=1,根据所述第一轮第一次切割的第二起始下标和所述第一取整数据得到对应的第一轮第一次切割的第二结束下标=1 int(120×80%)-1=96,则第一次切割得到的第一个第一子日志为“调用电能量自动计费系统利用计算机……互”;当n=2,第二取整数据为int((1-80%)×120÷10)时,确定第二轮第一次切割的第二起始下标=1 (n-1)×int((1-80%)×120÷10)=3,根据所述第二轮第一次切割的第二起始下标和所述第一取整数据得到对应的第二轮第一次切割的第二结束下标=3 int(120×80%)-1=98,则第一次切割得到的第二个第一子日志为“电能量自动计费系统利用计算机……互联网”;当n=3,第二取整数据为int((1-80%)×120÷10)时,确定第三轮第一次切割的第二起始下标=1 (n-1)×int((1-80%)×120÷10)=5,根据所述第三轮第一次切割的第二起始下标和所述第一取整数据得到对应的第三轮第一次切割的第二结束下标=5 int(120×80%)-1=100,则第一次切割得到的第三个第一子日志为“电能量自动计费系统利用计算机……互联网构建”,直至n=10或者第二结束下标等于120时第一次切割结束。

本实施例中,通过将全量识别无法识别出的关键日志行中的日志第一次切割,切割成多段第一子日志后再识别,提高了关键日志行被识别出的成功率。

识别模块206:用于识别所述存储日志中是否存在第一目标日志行与所述多个第一子日志中的至少一个第一子日志一致。

本实施例中,所述第一目标日志行是指所述存储日志中与所述多个第一子日志中任意一个第一子日志一致的日志行,当所述关键日志行中的日志经过第一次切割得到多个第一子日志之后,在所述存储日志中识别是否存在任意一个第一子日志。

优选的,在所述识别模块206识别所述存储日志中是否存在第一目标日志行与所述多个第一子日志中的至少一个第一子日志一致之前,删除模块207用于删除相同的第一子日志。

本实施例中,当所述关键日志行被切割成多段第一子日志之后,将相同的第一子日志进行删除,保留不同的第一子日志,减少数据的处理量,加快的关键日志行的识别效率。

输出模块208:用于当所述识别模块206识别所述存储日志中存在所述第一目标日志行时,输出所述日志查询请求结果。

本实施例中,所述日志查询请求结果包括:日志查询请求出现问题的概率、日志查询请求对应的错误信息位置、预先存储的错误修改方法、所述日志查询请求已识别的标识信息等。

本实施例,通过查找到任意一个第一子日志确定所述日志查询请求被识别,避免了关键日志行太长而导致的无法识别到的问题,提高了关键日志行被识别出的成功率。

进一步的,当所述识别模块206识别所述存储日志中不存在所述第一目标日志行时,所述切割模块205还用于对所述关键日志行进行至少一次第二次切割,得到对应所述至少一次第二次切割的多个第二子日志。

所述识别模块206:还用于识别所述存储日志中是否存在第二目标日志行与所述多个第二子日志中的至少一个第二子日志一致。

所述输出模块208:还用于当所述识别模块206识别所述存储日志中存在所述第二目标日志行时,输出所述日志查询请求结果。

所述确定模块203:还用于当所述识别模块206识别所述存储日志中不存在所述第二目标日志行时,在所述查询请求日志中新增关键日志行或者重新确定关键日志行。

本实施例中,可以进行至少一次第二次切割,当在所述关键日志中没有查找到所述第二目标日志时,可以再进行一次第二次切割,依次类推,直至切割后可以在所述关键日志中查找到切割后的任意一个第二目标日志,第二次切割结束。本发明所述的每一次第二次切割的起始下标和结束下标不同,但是每一次第二次切割的发明构思相同,具体的切割过程同第一次切割。

示例性的,所述关键日志行的长度为size=10,预设第二长度为50,所述关键日志行的长度10小于预设第二长度时,预设第三固定值为10,进行至少一次第二次切割,预设第一次第二切割比例为60%,确定第一次第一轮第二次切割的第三起始下标为1,第一次第一轮第二次切割的第三结束下标=1 int(size×第一次第二切割比例60%)-1;预设第二次第二切割比例为50%,确定第二次第一轮第二次切割的第三起始下标为1,第二次第一轮第二次切割的第三结束下标=1 int(size×第二次第二切割比例50%)-1;根据不同的第三开始下标和第三结束下标进行不同的第二次切割,每一次所述第二次切割过程同第一次切割过程。

示例性的,所述关键日志行的长度为size=120,预设第二长度为50,所述关键日志行的长度120大于等于预设第二长度时,预设第三固定值为10,进行至少一次第二次切割,所述预设第一次第二切割比例为60%,当n=1时,确定第一次第一轮第二次切割的第四起始下标=1 (n-1)×int((1-60%)×size÷10)=1,第一次第一轮第二次切割的第四结束下标=1 int(120×60%)-1=72;所述预设第二次第二切割比例为50%,当n=1时,确定第二次第一轮第二次切割的第四起始下标=1 (n-1)×int((1-50%)×120÷10)=1,第二次第一轮第二次切割的第四结束下标=1 int(120×50%)-1=60;根据不同的第四开始下标和第四结束下标进行不同的第二次切割,每一次所述第二次切割过程同第一次切割过程。

本实施例中,经过全量识别、所述第一次切割后识别和所述至少一次第二次切割后还未识别到所述日志查询请求中的关键日志行,可以在所述日志查询请求中增加关键日志行或者重新确定关键日志行进行识别,增加了系统能识别出的问题数量。

本实施例中,通过设置不同的第二切割比值对所述关键日志行中的日志进行至少一次第二次切割,其中,所述第一切割比值大于所述第二切割比值,即对所述关键日志行进行了更加精细的划分,进一步提高了关键行日志的识别的成功率。

进一步的,当所述输出模块208输出所述日志查询请求结果之后,关联所述多个第一子日志、所述多个第二子日志至所述日志查询请求中。

本实施例中,将所述多个第一子日志和所述多个第二子日志关联至所述日志查询请求中,当用户第二次输入所述日志查询请求时,不用进行重复切割,直接进行识别,提高了所述日志查询请求的识别速度。

综上所述,本实施例所述的日志识别装置,通过全量识别所述存储日志中是否有所述关键日志行快速的排除了日志查询请求出现问题的概率为100%的日志查询请求,当全量识别在所述存储日志中没有识别到所述关键日志行时,对所述关键日志行进行第一次切割后继续识别,可以进一步的排除掉日志查询请求出现问题的概率较大的日志查询请求,当第一次切割后还未识别到所述关键日志行时进行更加精细的至少一次第二次切割后再进行识别,提高了日志查询请求的识别精度。

此外,通过对所述日志查询请求中日志进行简单的切割后一致文本,提高了识别的速度,并且只针对日志查询请求中的关键日志行进行了标注,只要关键日志行标注的准确且独特,在一定的程度上可以提高识别率。

实施例三

参阅图3所示,为本发明实施例三提供的终端的结构示意图。在本发明较佳实施例中,所述终端3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。

本领域技术人员应该了解,图3示出的终端的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述终端3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。

在一些实施例中,所述终端3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述终端3还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。

需要说明的是,所述终端3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。

在一些实施例中,所述存储器31用于存储程序代码和各种数据,例如安装在所述终端3中的日志识别装置20,并在终端3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(read-onlymemory,rom)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、一次可编程只读存储器(one-timeprogrammableread-onlymemory,otprom)、电子擦除式可复写只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述终端3的控制核心(controlunit),利用各种接口和线路连接整个终端3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行终端3的各种功能和处理数据。

在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。

尽管未示出,所述终端3还可以是给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述终端3还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。

在进一步的实施例中,结合图2,所述至少一个处理器32可执行所述终端3的操作装置以及安装的各类应用程序(如所述的日志识别装置20)、程序代码等,例如,上述的各个模块。

所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以达到日志识别的目的。

在本发明的一个实施例中,所述存储器31存储多个指令,所述多个指令被所述至少一个处理器32所执行以实现日志识别的功能。

具体地,所述至少一个处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。


技术特征:

1.一种日志识别方法,其特征在于,所述方法包括:

接收用户输入的日志查询请求,其中,所述日志查询请求中携带有待查询的日志id及关键日志行;

获取与所述日志id对应的存储日志;

全量识别所述存储日志中是否包括所述关键日志行;

当所述存储日志中不包括所述关键日志行时,对所述关键日志行进行第一次切割,得到多个第一子日志;

识别所述存储日志中是否存在第一目标日志行与所述多个第一子日志中的至少一个第一子日志一致;

当所述存储日志中存在所述第一目标日志行时,输出所述日志查询请求结果。

2.如权利要求1所述的方法,其特征在于,所述当所述存储日志中不包括所述关键日志行时,对所述关键日志行进行第一次切割,得到多个第一子日志包括:

计算所述关键日志行的长度;

当所述关键日志行的长度小于预设第一长度时,确定第一次切割的第一起始下标和对应所述第一起始下标的第一结束下标,并根据所述第一起始下标和所述第一结束下标对所述关键日志行进行第一次切割;

当所述关键日志行的长度大于或者等于所述预设第一长度时,确定第一次切割的第二起始下标和对应所述第二起始下标的第二结束下标,并根据所述第二起始下标和所述第二结束下标对所述关键日志行进行第一次切割。

3.如权利要求2所述的方法,其特征在于,所述确定第一次切割的第一起始下标和对应所述第一起始下标的第一结束下标包括:

确定所述第一起始下标为1,并在每轮第一次切割时将所述第一起始下标增加1作为新的第一起始下标;

在每轮第一次切割时将所述预设第一长度与预设第一切割比值的乘积进行取整得到第一取整数据,并确定所述第一起始下标和所述第一取整数据之和再减去1得到的值作为所述第一起始下标对应的第一结束下标;

当所述第一起始下标等于预设第一固定值时或者所述第一结束下标等于所述关键日志行的长度时,结束所述第一次切割。

4.如权利要求2所述的方法,其特征在于,所述确定第一次切割的第二起始下标和对应所述第二起始下标的第二结束下标包括:

在每轮第一次切割时将1和所述预设第一切割比值相减之差和所述预设第一长度相乘的乘积除以预设第二固定值之商数进行取整得到第二取整数据,并确定n减去1之差和所述第二取整数据相乘的乘积再加上1得到的值作为第二起始下标,其中,n为从1开始取整的正整数;

在每轮第一切割时确定所述第二起始下标和所述第一取整数据相加之和再减去1得到的值作为所述第二起始下标对应的第二结束下标;

当所述第二起始下标等于预设第二固定值时或者所述第二结束下标等于所述关键日志行的长度时,结束所述第一次切割。

5.如权利要求1至4中任意一项所述的方法,其特征在于,当所述存储日志中不存在所述第一目标日志行时,所述方法还包括:

对所述关键日志行进行至少一次第二次切割,得到对应所述至少一次第二次切割的多个第二子日志;

识别所述存储日志中是否存在第二目标日志行与所述多个第二子日志中的至少一个第二子日志一致;

当所述存储日志中存在所述第二目标日志行时,输出所述日志查询请求结果;

当所述存储日志中不存在所述第二目标日志行时,在所述日志查询请求中新增关键日志行或者重新确定关键日志行。

6.如权利要求1至4中任意一项所述的方法,其特征在于,所述获取与所述日志id对应的存储日志包括:

获取所有存储日志;

识别所述所有存储日志的第一id;

从所述第一id中筛选出与所述日志id对应的目标id;

获取与所述目标id对应的存储日志。

7.如权利要求6所述的方法,其特征在于,在所述获取与所述目标id对应的存储日志之后,所述方法还包括:

获取所述日志查询请求中携带的操作类型id及操作步骤标识码id;

从所述存储日志中获取与所述操作类型id对应的目标操作类型;

从所述目标操作类型中获取与所述操作步骤标识码id对应的目标操作步骤;

将所述目标操作步骤对应的存储日志确定为与所述日志id对应的最终存储日志。

8.一种日志识别装置,其特征在于,所述装置包括:

接收模块,用于接收用户输入的日志查询请求,其中,所述日志查询请求中携带有待查询的日志id及关键日志行;

获取模块,用于获取与所述日志id对应的存储日志;

全量识别模块,用于全量识别所述存储日志中是否包括所述关键日志行;

切割模块,用于当所述存储日志中不包括所述关键日志行时,对所述关键日志行进行第一次切割,得到多个第一子日志;

识别模块,用于识别所述存储日志中是否存在第一目标日志行与所述多个第一子日志中的至少一个第一子日志一致;

输出模块,用于当所述存储日志中存在所述第一目标日志行时,输出所述日志查询请求结果。

9.一种终端,其特征在于,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至7中任意一项所述日志识别方法。

10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述日志识别方法。

技术总结
本发明提供一种日志识别方法,包括:接收用户输入的日志查询请求,其中,日志查询请求中携带有待查询的日志ID及关键日志行;获取与日志ID对应的存储日志;当全量识别存储日志中不包括关键日志行时,对所述关键日志行进行第一次切割,得到多个第一子日志;当识别存储日志中存在第一目标日志行时,输出所述日志查询请求结果。本发明还提供一种日志识别装置、终端及存储介质。本发明在全量识别不了存储日志中的关键日志行时,通过对关键日志行进行至少一次切割后再识别,提高了日志的识别精度。

技术研发人员:严月强
受保护的技术使用者:深圳壹账通智能科技有限公司
技术研发日:2020.01.20
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-26945.html

最新回复(0)