CN112667426A - 日志分析方法及装置 - Google Patents
日志分析方法及装置 Download PDFInfo
- Publication number
- CN112667426A CN112667426A CN202011624735.3A CN202011624735A CN112667426A CN 112667426 A CN112667426 A CN 112667426A CN 202011624735 A CN202011624735 A CN 202011624735A CN 112667426 A CN112667426 A CN 112667426A
- Authority
- CN
- China
- Prior art keywords
- plug
- fault
- information
- log
- log information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种日志分析方法及装置,其中方法包括:加载多个插件,多个插件为预先基于不同的日志分析功能进行封装获得的,多个插件具有统一的导出接口;获取目标日志文件,目标日志文件中包含日志信息;通过导出接口,将日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中;获得插件输出的故障分析结果,故障分析结果中,包括:插件通过对日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因。本发明实施例能够实现在不改变应用程序代码的前提下对日志分析功能的动态更新。
Description
技术领域
本发明涉及日志文件处理技术领域,特别是涉及一种日志分析方法及装置。
背景技术
目前,应用程序在运行的过程中,都会生成日志文件,用于记录软件的执行流程和状态。用户在使用应用程序的过程中,遇到问题时通常会提交问题反馈,电子设备会对该应用程序对应的日志文件进行故障分析,从而确定应用程序在使用过程中出现故障的原因。
现有技术中,日志分析的功能均是集成在应用程序中的,也就是说,应用程序中包含用于对日志文件进行故障分析的日志分析软件。日志分析软件与应用程序的其他功能一起运行。
由于日志分析软件都是集成在应用程序中的,因此当出现新的故障,有新的故障分析需求时,就需要开发该应用程序的新版本,以增加对新故障进行日志分析的功能。也就是说,现有技术无法实现在不改变应用程序代码的前提下对日志分析功能的动态更新。
发明内容
本发明实施例的目的在于提供一种日志分析方法及装置,以实现在不改变应用程序代码的前提下对日志分析功能的动态更新。具体技术方案如下:
第一方面,本发明实施例提供一种日志分析方法,所述方法包括:
加载多个插件,所述多个插件为预先基于不同的日志分析功能进行封装获得的,所述多个插件具有统一的导出接口;
获取目标日志文件,所述目标日志文件中包含日志信息;
通过所述导出接口,将所述日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中;
获得所述插件输出的故障分析结果,所述故障分析结果中,包括:所述插件通过对所述日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因。
可选地,所述插件通过对所述日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因的步骤,包括:
所述插件判断所述日志信息中是否包含与预设的故障条件相匹配的信息;
若是,则查找预设的故障条件与出现故障的原因之间的对应关系,获得该故障条件对应的出现故障的原因,作为所述应用程序出现故障的原因。
可选地,所述对应关系中包括:多个故障条件和各所述故障条件对应的出现故障的原因;
所述插件通过对所述日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因的步骤,包括:
按照预设的匹配顺序,判断所述日志信息是否与所述对应关系中的故障条件相匹配;
当所述日志信息与所述对应关系中的当前故障条件相匹配时,获得所述当前故障条件对应的出现故障的原因,并判断该日志信息是否与所述对应关系中的下一个故障条件相匹配,直到所述日志信息与所述对应关系中的一个故障条件不匹配,或者所述日志信息与所述对应关系中的所有故障条件均匹配;
当所述日志信息与所述对应关系中的当前故障条件不匹配时,则按照预设的匹配顺序,判断下一个日志信息是否与所述对应关系中的故障条件相匹配。
可选地,所述插件中包括:有限状态机;
在所述通过所述导出接口,将所述日志信息传输至具有与该日志信息匹配的日志分析功能的插件中的步骤之前,所述方法还包括:
通过所述插件加载该插件对应的预设的配置文件,所述配置文件中包括多个状态,所述多个状态中包括:初始状态、至少一个中间状态以及终止状态,所述配置文件中还包括:所述初始状态以及所述中间状态转移至下一个状态的故障条件,以及该故障条件对应的出现故障的原因;所述状态表示故障信息;
所述插件通过对所述日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因的步骤,包括:
判断所述日志信息是否与当前故障条件相匹配;
若是,则将所述有限状态机中的当前故障信息跳转至,当前状态的下一个状态对应的故障信息,获得当前出现故障的原因,并执行所述判断所述日志信息是否与当前故障条件相匹配的步骤,直到所述当前故障信息跳转至所述终止状态对应的故障信息,并输出各所述故障条件对应的出现故障的原因;
若否,则判断下一个日志信息是否与故障条件中预设的初始故障条件相匹配。
可选地,各所述插件中包含:该插件的插件类型;所述插件类型是基于所述日志信息的信息类型确定的,所述插件类型、所述信息类型以及所述日志分析功能具有一一对应关系;
所述通过所述导出接口,将所述日志信息传输至具有与该日志信息匹配的日志分析功能的插件中的步骤,包括:
创建多个过滤器队列,并将具有相同插件类型的插件添加至一个所述过滤器队列中;
获取所述日志信息的信息类型;
调用与所述信息类型对应的插件类型所对应的目标过滤器队列,并通过所述目标过滤器队列调用该目标过滤器队列中的各个插件,所述目标过滤器队列中的各个插件为所述具有与该日志信息相匹配的日志分析功能的插件;
通过所述导出接口,将所述日志信息传输至所述目标过滤器队列调用的各个插件中。
可选地,所述创建多个过滤器队列,并将具有相同插件类型的插件添加至一个所述过滤器队列中的步骤,包括:
从多个所述插件的导出接口中,分别获取各个插件的插件类型;
分别创建针对不同插件类型的过滤器队列;
针对所述多个插件中的各插件,将该插件添加至该插件的插件类型所对应的过滤器队列中。
第二方面,本发明实施例提供了一种日志分析装置,所述装置包括:
插件加载模块,用于加载多个插件,所述多个插件为预先基于不同的日志分析功能进行封装获得的,所述多个插件具有统一的导出接口;
目标日志文件获取模块,用于获取目标日志文件,所述目标日志文件中包含日志信息;
日志信息传输模块,用于通过所述导出接口,将所述日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中;
故障分析结果获得模块,用于获得所述插件输出的故障分析结果,所述故障分析结果中,包括:所述插件通过对所述日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因。
可选地,所述故障分析结果获得模块,包括:
第一匹配子模块,用于所述插件判断所述日志信息中是否包含与预设的故障条件相匹配的信息;
第一出现故障的原因获得子模块,用于若是,则查找预设的故障条件与出现故障的原因之间的对应关系,获得该故障条件对应的出现故障的原因,作为所述应用程序出现故障的原因。
可选地,所述对应关系中包括:多个故障条件和各所述故障条件对应的出现故障的原因;
所述故障分析结果获得模块,包括:
第二匹配子模块,用于按照预设的匹配顺序,判断所述日志信息是否与所述对应关系中的故障条件相匹配;
第二出现故障的原因获得子模块,用于当所述日志信息与所述对应关系中的当前故障条件相匹配时,获得所述当前故障条件对应的出现故障的原因,并判断该日志信息是否与所述对应关系中的下一个故障条件相匹配,直到所述日志信息与所述对应关系中的一个故障条件不匹配,或者所述日志信息与所述对应关系中的所有故障条件均匹配;
第三匹配子模块,用于当所述日志信息与所述对应关系中的当前故障条件不匹配时,则按照预设的匹配顺序,判断下一个日志信息是否与所述对应关系中的故障条件相匹配。
可选地,所述插件中包括:有限状态机;
所述装置还包括:
配置文件加载模块,用于通过所述插件加载该插件对应的预设的配置文件,所述配置文件中包括多个状态,所述多个状态中包括:初始状态、至少一个中间状态以及终止状态,所述配置文件中还包括:所述初始状态以及所述中间状态转移至下一个状态的故障条件,以及该故障条件对应的出现故障的原因;所述状态表示故障信息;
所述故障分析结果获得,包括:
第四匹配子模块,用于判断所述日志信息是否与当前故障条件相匹配;
故障信息跳转子模块,用于若是,则将所述有限状态机中的当前故障信息跳转至,当前状态的下一个状态对应的故障信息,获得当前出现故障的原因,并执行所述判断所述日志信息是否与当前故障条件相匹配的步骤,直到所述当前故障信息跳转至所述终止状态对应的故障信息,并输出各所述故障条件对应的出现故障的原因;
第五匹配子模块,用于若否,则判断下一个日志信息是否与故障条件中预设的初始故障条件相匹配。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的日志分析方法。
本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的日志分析方法。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的日志分析方法。
本发明实施例有益效果:
本发明实施例提供的日志分析方法及装置,可以加载多个插件,获取目标日志文件;通过导出接口,将目标日志文件中的日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中;获得插件输出的故障分析结果,故障分析结果中,包括:插件通过对日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因。在本发明实施例中,由于多个插件具有统一的导出接口,且插件通常是独立于应用程序而存在的,因此,在有新的故障分析需求时,可以对插件进行修改,而不需要对应用程序进行修改,便可以利用统一的导出接口将日志信息传输至插件中,从而实现对新故障进行日志分析的功能,因此,本发明实施例能够实现在不改变应用程序代码的前提下对日志分析功能的动态更新。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的日志分析方法的第一种流程示意图;
图2为图1所示实施例流程步骤S140的一种具体流程;
图3为图1所示实施例流程步骤S140的另一种具体流程;
图4a为本发明实施例提供的日志分析方法的第二种流程示意图;
图4b为图1所示实施例流程步骤S140的第三种具体流程;
图4c为本发明实施例提供的插件中的有限状态机的执行流程示意图;
图5为图1所示实施例流程步骤S130的一种具体流程;
图6为图5所示实施例流程步骤S131的一种具体流程;
图7为本发明实施例提供的日志分析装置的一种结构示意图;
图8为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,日志分析的功能均是集成在应用程序中的,也就是说,应用程序中包含用于对日志文件进行故障分析的日志分析软件。日志分析软件与应用程序的其他功能一起运行。
由于日志分析软件都是集成在应用程序中的,因此当出现新的故障,有新的故障分析需求时,就需要开发该应用程序的新版本,以增加对新故障进行日志分析的功能。也就是说,现有技术无法实现在不改变应用程序代码的前提下对日志分析功能的动态更新。
有鉴于此,本发明实施例提供了一种日志分析方法,从整体上而言,加载多个插件,多个插件为预先基于不同的日志分析功能进行封装获得的,多个插件具有统一的导出接口;获取目标日志文件,目标日志文件中包含日志信息;通过导出接口,将日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中;获得插件输出的故障分析结果,故障分析结果中,包括:插件通过对日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因。
本发明实施例提供的日志分析方法可以应用于终端,该终端例如可以为:电子计算机、平板电脑、智能手机等具有信息处理能力的电子设备;本发明实施例提供的日志分析方法也可以应用于服务器。
如图1所示,本发明实施例提供了一种日志分析方法,该过程可以包括:
S110,加载多个插件,多个插件为预先基于不同的日志分析功能进行封装获得的,多个插件具有统一的导出接口。
S120,获取目标日志文件,目标日志文件中包含日志信息。
S130,通过导出接口,将日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中。
S140,获得插件输出的故障分析结果,故障分析结果中,包括:插件通过对日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因。
本发明实施例提供的日志分析方法,可以加载多个插件,获取目标日志文件;通过导出接口,将目标日志文件中的日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中;获得插件输出的故障分析结果,故障分析结果中,包括:插件通过对日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因。在本发明实施例中,由于多个插件具有统一的导出接口,且插件通常是独立于应用程序而存在的,因此,在有新的故障分析需求时,可以对插件进行修改,而不需要对应用程序进行修改,便可以利用统一的导出接口将日志信息传输至插件中,从而实现对新故障进行日志分析的功能,因此,本发明实施例能够实现在不改变应用程序代码的前提下对日志分析功能的动态更新。
进一步地,图1所示实施例流程步骤S110中,可以预先基于不同的日志分析功能进行封装获得多个插件,日志分析功能可以为对某个类型的应用程序进行故障分析的功能,或者针对应用程序在运行过程中的具体某项功能进行故障分析的功能。例如,日志分析功能可以为对播放类型的应用程序进行故障分析的功能;也可以为分析播放类型的应用程序在播放请求的过程中是否出现故障的功能,或者分析播放类型的应用程序在播放音视频的过程中是否出现故障的功能。
当本发明实施例提供的日志分析方法应用于终端时,终端内安装的应用程序中,可以包含对日志文件进行故障分析的主程序。当本发明实施例提供的日志分析方法应用于服务器时,服务器中可以预先保存用于对目标日志文件进行故障分析的主程序。
为了增加日志分析功能的可扩展性,从而进一步丰富插件的功能和种类,可以为多个插件设置统一的导出接口,主程序启动后,可以加载多个插件,便于后续通过导出接口调用插件内部的功能。
由于用户在想要使用一个新的应用程序,或者想要对已安装的应用程序进行版本更新时,终端会从服务器下载应用程序安装包,服务器则会将该应用程序安装包发送给终端。对目标日志文件进行分析的多个插件可以由服务器在向终端发送应用程序安装包时一并发送给终端,再由主程序加载;也可以由主程序在对目标日志文件进行故障分析时,从服务器中加载获得。
服务器中可以预先保存一个用于放置插件的文件夹,其中包含了在日志分析过程中需要用到的所有插件,服务器或者终端中的主程序可以加载该文件夹中的所有插件。另外,也可以在服务器或者终端保存一个插件配置文件,该插件配置文件中可以包含所有插件标识,主程序在启动日志分析过程中,可以通过加载该插件配置文件,获得所有插件标识,并加载各插件标识所对应的插件。由于在执行日志分析的过程中,是由服务器或终端直接从文件夹中加载该文件夹中所包含的所有插件,或者在加载插件配置文件后,基于获得的插件标识加载对应的插件,因此,在修改插件内部的功能、更换插件、或者新增插件时,只需对文件夹中的插件进行修改,更换或新增,或者对插件配置文件进行相应的修改即可,这样,在修改插件、更换插件、或者新增插件时,不需要修改应用程序和主程序。
在本发明实施例中,当终端中所安装的系统不同时,插件的格式也可以是不同的,例如,当系统为windows系统时,插件为dll文件,即,该插件的扩展名为.dll;当系统为linux系统时,插件为so文件,即,该插件的扩展名为.so;当系统为web系统时,插件为js文件,即,该插件的扩展名为.js。
进一步地,图1所示实施例流程步骤S120中,当本发明实施例提供的日志分析方法应用于终端时,终端内的主程序可以获取目标日志文件,该目标日志文件为应用程序在运行的过程中,记录其执行流程和状态的日志文件。
当本发明实施例提供的日志分析方法应用于服务器时,终端可以定时向服务器上报日志文件,服务器在接收到日志文件之后,可以利用主程序对该日志文件进行故障分析。
主程序在启动执行流程之后,逐行扫描目标日志文件,并获取其中的日志信息,该日志信息通常为应用程序在运行过程中,具体执行流程和状态的内容,其中通常可以包括应用程序在运行过程中与出现故障相关的信息,例如,当一个播放类的应用程序在运行的过程中,出现视频卡顿的情况时,日志信息中可以包含与播放卡顿相关的信息,更具体地,日志信息中可以包含播放卡顿等字样。
进一步地,图1所示实施例流程步骤S130中,在获取到日志信息之后,可以先从加载的多个插件中,确定具有与目标日志文件中的日志信息相匹配的日志分析功能的插件,接着通过导出接口,将日志信息传输至具有与该日志信息相匹配的日志分析功能的插件,以使插件对日志信息进行故障分析。
进一步地,图1所示实施例流程步骤S140中,可以预先在插件中设置故障条件与出现故障的原因之间的对应关系。故障条件通常可以为应用程序在运行的过程中,应用程序内部运行的故障状态,例如,当应用程序为播放类应用程序时,故障条件可以为帧率下降,或者播放声音与时间不匹配等。出现故障的原因可以为出现上述故障状态的原因。例如,当故障条件为帧率下降时,出现故障的原因可以为CPU温度过高,导致解码速度下降;当故障条件为播放声音与时间不匹配时,出现故障的原因可以为声卡有问题。
插件在接收到日志信息之后,可以对该日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因,并输出故障分析结果,该故障分析结果中包括:应用程序出现故障的原因。在插件输出故障分析结果之后,主程序可以获得该故障分析结果。
作为本发明实施例一种可选的实施方式,如图2所示,图1所示实施例流程步骤S140,插件通过对日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因的步骤,可以包括:
S141,插件判断日志信息中是否包含与预设的故障条件相匹配的信息。
可以预设故障条件,并通过插件判断日志信息中是否包含与故障条件相匹配的信息,具体地,可以判断日志信息中是否包含与故障条件相同的内容。例如,当故障条件为帧率下降时,可以判断日志信息中是否包含“帧率下降”,如果是,则表明日志信息中包含与帧率下降相匹配的信息。
S142,若是,则查找预设的故障条件与出现故障的原因之间的对应关系,获得该故障条件对应的出现故障的原因,作为应用程序出现故障的原因。
如果日志信息中包含与故障条件相匹配的信息,则表明应用程序出现故障,接着可以查找故障条件与出现故障的原因之间的对应关系,获取与日志信息匹配的故障条件对应的出现故障的原因,并将该原因作为应用程序出现故障的原因。由于通常在日志信息中携带有与故障条件相匹配的信息,因此,通过上述流程步骤S141~S142可以准确地从日志信息中确定出应用程序出现故障的原因。如果否,则判断目标日志文件中的下一个日志信中是否包含与故障条件相匹配的信息。
作为本发明实施例一种可选的实施方式,对应关系中包括:多个故障条件和各故障条件对应的出现故障的原因。由于应用程序在运行的过程中,可能存在多种故障条件,而且每一种故障条件对应的出现故障的原因也不同,因此,对应关系中可以包括:多个故障条件和各故障条件对应的出现故障的原因。
如图3所示,图1所示实施例流程步骤S140,插件通过对日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因的步骤,可以包括:
S143,按照预设的匹配顺序,判断日志信息是否与对应关系中的故障条件相匹配。也就是判断日志信息中是否包含与预设故障条件相匹配的信息,例如:某故障条件为帧率下降,则可以判断日志信息是否与帧率相匹配,也就是说判断日志信息中是否包含“帧率下降”。
当对应关系中包括多个故障条件时,多个故障条件可能存在递进关系,即,在日志信息与一个故障条件相匹配的情况下,日志信息才有可能与另外一个故障条件相匹配;在与一个故障条件不匹配的情况下,通常是不会与另外的部分故障条件相匹配的。因此,可以按照多个故障条件之间的递进关系,设置匹配顺序,该匹配顺序表示在判断日志信息是否与故障条件相匹配的过程中,故障条件的先后顺序。
按照预设的匹配顺序,判断日志信息是否与对应关系中的故障条件相匹配的具体过程可以为:先判断日志信息是否与第一个故障条件相匹配,并当匹配时,判断日志信息是否与第二个故障条件相匹配,以此类推。在判断日志信息是否与第一个故障条件相匹配的过程中,可以判断日志信息中是否包含与故障信息相匹配的信息。
S144,当日志信息与对应关系中的当前故障条件相匹配时,获得当前故障条件对应的出现故障的原因,并判断该日志信息是否与对应关系中的下一个故障条件相匹配,直到日志信息与对应关系中的一个故障条件不匹配,或者日志信息与对应关系中的所有故障条件均匹配。
当日志信息与对应关系中的当前故障条件相匹配时,则可以获得与当前故障条件对应的出现故障的原因。并接着判断该日志信息是否与对应关系中的下一个故障条件相匹配,该下一个故障条件为按照匹配顺序所确定的、当前故障条件的下一个故障条件,直到日志信息与对应关系中的一个故障条件不匹配,或者日志信息与对应关系中的所有故障条件均匹配。
S145,当日志信息与对应关系中的当前故障条件不匹配时,则按照预设的匹配顺序,判断下一个日志信息是否与对应关系中的故障条件相匹配,直到下一个日志信息与对应关系中的一个故障条件不匹配,或者下一个日志信息与对应关系中的所有故障条件均匹配。
当日志信息与对应关系中的当前故障条件不匹配时,则表明日志信息与对应关系中的在当前故障条件之后的故障条件均不匹配,因此,可以按照预设的匹配顺序,判断下一个日志信息是否与对应关系中的故障条件相匹配,直到下一个日志信息与对应关系中的一个故障条件不匹配,或者下一个日志信息与对应关系中的所有故障条件均匹配。
在本发明实施例中,充分利用各故障条件之间的递进关系,通过预设的匹配顺序,并在日志信息与当前故障条件相匹配时,才判断日志信息是否与下一个故障条件相匹配,而不需要将日志信息与每一个故障条件进行匹配,因此能够提高对日志信息的分析效率。
作为本发明实施例一种可选的实施方式,插件中包括:有限状态机,该有限状态机中可以设置对日志信息进行故障分析的执行流程,具体地:有限状态机可以判断输入的日志信息,是否满足故障条件,并根据是或否的不同结论,执行不同的流程。
有限状态机的执行流程中,可以将多个故障条件设置为递进式故障条件,即,多个故障条件中,只有日志信息与一个故障条件相匹配,该日志信息才可能与下一个故障信息相匹配。当日志信息与其中一个故障条件不匹配时,则该日志信息不可能与下一个故障信息相匹配。
如图4a所示,在图1所示实施例流程步骤S130,通过导出接口,将日志信息传输至具有与该日志信息匹配的日志分析功能的插件中的步骤之前,本发明实施例提供的日志分析方法还可以包括:
S410,通过插件加载该插件对应的预设的配置文件。
该配置文件例如可以是Json文件。该配置文件中包括多个状态,多个状态中包括:初始状态、至少一个中间状态以及终止状态,配置文件中还包括:初始状态以及中间状态转移至下一个状态的故障条件,以及该故障条件对应的出现故障的原因。
配置文件中的状态可以表示故障信息,该故障信息可以为应用程序在运行的过程中出现的故障,例如,故障信息可以为视频卡顿。
当插件被主程序加载好以后,插件可以加载配置文件,并对插件中的有限状态机进行初始化,具体过程是重置有限状态机,即,在加载配置文件之后,可以获取其中的多个状态、各个故障条件以及各故障条件对应的出现故障的原因,并将有限状态机的当前故障信息,设置为初始状态对应的故障信息。
如图4b所示,图1所示实施例流程步骤S140,插件通过对日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因的步骤,可以包括:
S146,判断日志信息是否与当前故障条件相匹配。
在将日志信息传输至插件中后,插件可以读取日志信息,此时进入有限状态机的执行流程,即,开始判断日志信息是否与第一个故障条件相匹配。
判断日志信息是否与当前故障条件相匹配的具体过程可以为:判断日志信息中是否包含与故障条件相同的内容。当包含时,表明日志信息与故障条件相匹配;当不包含时,表明日志信息与故障条件不匹配。例如,当故障条件为帧率下降时,可以判断日志信息中是否包含“帧率下降”,如果是,则表明日志信息与帧率下降的故障条件相匹配。其中,当前故障条件可以指上一个状态转移至当前状态的故障条件。
S147,若是,则将有限状态机中的当前故障信息跳转至,当前状态的下一个状态对应的故障信息,获得当前出现故障的原因。
若是,则将有限状态机中的当前故障信息跳转至当前状态的下一个状态对应的故障信息,即,有限状态机中的当前故障信息更新为下一个状态对应的故障信息,并获得当前故障条件对应的出现故障的原因。
直到当前故障信息跳转至终止状态对应的故障信息,输出各故障条件对应的出现故障的原因。当当前故障信息跳转至终止状态对应的故障信息时,表明有限状态机中的流程已执行完,此时,可以输出各故障条件对应的出现故障的原因。具体实现时,在步骤S147之后,可以执行S148,判断下一个状态是否为终止状态。若是,则表明有限状态机中的流程已执行完,此时,执行S149,输出各故障条件对应的出现故障的原因。若否,则表明有限状态机中的流程尚未执行完,则返回S146,判断日志信息是否与当前故障条件相匹配的步骤。
S1410,若否,则判断下一个日志信息是否与故障条件中预设的初始故障条件相匹配。S1411,直到将所有的日志信息与故障条件匹配完成。
若日志信息与当前故障条件不匹配,则表明日志信息可能与位于该当前故障条件之后的所有故障条件均不匹配,因此,可以不再对该日志信息进行判断,而是读取下一个日志信息,并判断该下一个日志信息是否与故障条件中预设的初始故障条件相匹配,同时可以将有限状态机中的当前故障信息初始化为初始故障信息。其中初始故障条件,可以表示所有故障条件中的第一个故障条件,也即有限状态机从初始状态转移至第二个状态的故障条件。
在本发明实施例中,通过在插件中建立有限状态机,并将多个状态、故障条件以及出现故障的原因,放置在配置文件中,这样,当用户或者研发人员想要对状态对应的故障信息、故障条件或者出现故障的原因进行修改后,可以及时对配置文件进行修改。在对目标日志文件进行故障分析时,插件会加载修改后的配置文件,并获取其中的故障信息、故障条件以及出现故障的原因,因此,本发明实施例能够进一步提高日志分析方法的修改及时性,以及实现故障分析定制化的需求。此外,在不更改和替换插件的情况下,可以通过调整配置文件中的状态、故障条件以及出现故障的原因,达到扩展日志分析功能的目的。
此外,还可以对有限状态机中的执行流程进行设置,设置两个并列的故障条件,为描述方便,可以将其中一个故障条件命名为第一类故障条件,将另一个故障条件命名为第二类故障条件。当日志信息与第一类故障条件相匹配时,有限状态机跳转至第一类故障条件对应的第一类故障信息;当日志信息与第二类故障条件相匹配时,有限状态机跳转至第二类故障条件对应的第二类故障信息。
下面通过一个实施例对有限状态机的执行流程作进一步地描述:
Json配置文件中包含一个的配置信息如下,{s1:{cond2:{s2,r2}},s2:{cond3:{s3,r3},cond5:{s5,r5}},s3:{cond4:{s4,r4}},s4}。其中s1为初始故障信息,s2和s3为中间故障信息,s4和s5为终止故障信息。cond2、cond3、cond5和cond4均为故障条件,其中cond3和cond5是两个并列的故障条件。r2、r3、r5和r4均为出现故障的原因。
参照图4c,有限状态机中的当前故障信息为s1,当日志信息与cond2相匹配时,有限状态机的当前故障信息跳转至s2,输出出现故障的原因r2;继续读取日志信息,当日志信息与cond3相匹配时,有限状态机的当前故障信息跳转至s3,输出出现故障的原因r3;继续读取日志,当日志信息与cond4相匹配时,有限状态机的当前故障信息跳转至s4,也即终止故障信息,输出出现故障的原因r4,有限状态机的执行流程结束。故障信息跳转过程为:s1-s2-s3-s4,则输出的出现故障的原因为:r1、r2、r3和r4。
如果当前故障信息为s2时,当日志信息与cond5相匹配时,则有限状态机的当前故障信息跳转至s5,即,终止故障信息,输出出现故障的原因r5,有限状态机的执行流程结束。该种情况下,故障信息跳转过程为:s1-s2-s5,则输出的出现故障的原因为:r1、r2、和r5。在有限状态机的执行流程结束之后,将插件的有限状态机的当前故障信息更新为s1,重新进入有限状态机的执行流程。
作为本发明实施例一种可选的实施方式,各插件中包含:该插件的插件类型;插件类型是基于日志信息的信息类型确定的,插件类型、信息类型以及日志分析功能具有一一对应关系。
由于通常不同的插件可以对不同的日志信息进行故障分析,因此,不同的插件可以具有不同的日志分析功能,且可以根据日志信息的信息类型,确定插件的插件类型,插件类型、信息类型以及日志分析功能具有一一对应关系。例如,对于一个播放类型的日志信息,其信息类型为播放类型,日志分析功能可以为对播放类型的应用程序进行故障分析,用于对该日志信息进行故障分析的插件的插件类型可以确定为播放类型。当日志信息类型为投递类型、网络请求类型或云配类型的,各自对应的插件类型依次也可以为投递类型、网络请求类型或云配类型。
此外,也可以将对多种不同信息类型的日志信息进行故障分析的插件集成为一个插件,该插件即可支持多种信息类型,则该插件中可以包括多种插件类型,该插件也可以实现多种日志分析功能。
还可以针对相同插件类型的相关插件,针对应用程序不同的运行阶段,制作不同的插件,例如,针对插件类型为播放类型的相关插件,可以分别设置播放卡顿诊断插件和播放请求诊断插件,其中,播放卡顿诊断插件可以对播放类的应用程序在播放的过程中进行故障分析,播放请求诊断插件则可以在播放请求的过程中进行故障分析。
如图5所示,图1所示实施例流程步骤S130,通过导出接口,将日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中的步骤,可以包括:
S131,创建多个过滤器队列,并将具有相同插件类型的插件添加至一个过滤器队列中。
可以将插件类型设置于导出接口中,主程序在加载多个插件后,可以通过各个插件的导出接口,获取各个插件的插件类型。
在获取到各个插件的插件类型之后,可以创建过滤器,该过滤器中包含有调用接口。接着可以统计所有的插件类型的数量,根据插件类型的数量,在过滤器中创建相同数量个过滤器队列。将具有相同插件类型的插件添加在一个过滤器队列中。需要说明的是,如果一个插件支持多种插件类型时,那么可以将该插件添加至多个过滤器队列中,即,多个过滤器队列中均包含该插件。
例如,当加载的多个插件分别为:播放诊断插件,其对应的插件类型为播放类型;投递诊断插件,其对应的插件类型为投递类型;网络请求诊断插件,对应的插件类型为网络类型;云配诊断插件,其对应的插件类型为云配类型时,可以统计出所有插件的插件类型的数量为4个,因此,可以创建4个过滤器队列,分别为:播放过滤器队列、投递过滤器队列、网络过滤器队列和云配过滤器队列。
S132,获取日志信息的信息类型。
目标日志文件中可以包含信息类型,主程序扫描目标日志文件时,可以获取到该信息类型,针对该日志文件中的各个日志信息进行故障分析时,均使用该信息类型。此外,目标日志文件中的各个日志信息中也可以包含信息类型,当主程序在扫描目标日志文件时,可以从日志信息中获取到信息类型。
S133,调用与信息类型对应的插件类型所对应的目标过滤器队列,并通过目标过滤器队列调用该目标过滤器队列中的各个插件。
主程序在获取到日志信息的信息类型之后,可以调用与信息类型对应的插件类型相对应的目标过滤器队列,即,从所创建的多个过滤器队列中选择与信息类型相对应的目标过滤器队列,并调用。接着可以通过目标过滤器队列调用该目标过滤器队列中的插件,这些插件的插件类型均与日志信息的信息类型相对应。由于目标过滤器队列中的各个插件的插件类型均与信息类型相对应,因此,目标过滤器队列中的各个插件,为具有与该日志信息相匹配的日志分析功能的插件。
S134,通过导出接口,将日志信息传输至目标过滤器队列调用的各个插件中。
在调用与信息类型相对应的插件之后,可以通过导出接口,将日志信息传输至目标过滤器队列所调用的各个插件中,并由这些插件对日志信息进行故障分析,具体地,可以通过各个插件中所设置的统一的导出接口,将日志信息传输至目标过滤器队列调用的各个插件中。
在本发明实施例中,通过创建多个过滤器队列,并将相同插件类型的插件添加至一个过滤器队列中,这样,在调用插件时,可以根据日志信息的信息类型,调用对应的过滤器队列,并通过过滤器队列调用其中的插件。
作为本发明实施例一种可选的实施方式,如图6所示,图5所示实施例流程步骤S131,创建多个过滤器队列,并将具有相同插件类型的插件添加至一个过滤器队列中,可以包括:
S1311,从多个插件导出接口中,分别获取各个插件的插件类型。
针对所有的插件,可以将各个插件的插件类型设置于导出接口中,这样,在加载多个插件之后,可以通过导出接口获取各个插件的插件类型。
S1312,分别创建针对不同插件类型的过滤器队列。
在获取到各个插件的插件类型之后,可以分别创建针对不同插件类型的过滤器队列,并将该过滤器队列的类型设置为插件类型相同的类型。
S1313,针对多个插件中的各插件,将该插件添加至该插件的插件类型所对应的过滤器队列中。
针对多个插件中的各插件,可以根据该插件的插件类型,确定该插件所对应的过滤器队列,并将该插件添加至该插件的插件类型所对应的过滤器队列中。
作为本发明实施例一种可选的实施方式,故障分析结果中,还可以包括:
插件基于预设的出现故障的原因与解决方案之间的对应关系,确定应用程序出现故障的解决方案。
可以预先建立出现故障的原因与解决方案之间的对应关系,在获取到插件输出的出现故障的原因之后,可以基于出现故障的原因与解决方案之间的对应关系,确定应用程序出现故障的解决方案。其中出现故障的原因与解决方案之间的对应关系中,可以包含配置文件中所有出现故障的原因。例如,当出现故障的原因为CPU温度过高时,对应的解决方案可以为关闭正在运行但未使用的应用程序。本发明实施例能够获得应用程序出现故障的解决方案。
此外,还需要说明的是,主程序在获取到插件输出的故障分析结果后,可以进一步将该故障分析结果输出给用户,以使用户根据解决方案,确定是否按照解决方案对终端进行相应地操作,以消除故障。
当获得插件输出的故障分析结果后,可以根据各个日志信息所输出的出现故障的原因以及出现故障的解决方案,统计各个不同出现故障的原因的次数,以及生成多种分析图形,分析图形例如可以是饼状图、树状图或者柱状图等。
本发明实施例提供了一种日志分析装置的一种具体实施例,与图1所示流程相对应,参考图7,图7为本发明实施例的一种日志分析装置的一种结构示意图,日志分析装置可以包括:
插件加载模块701,用于加载多个插件,多个插件为预先基于不同的日志分析功能进行封装获得的,多个插件具有统一的导出接口。
目标日志文件获取模块702,用于获取目标日志文件,目标日志文件中包含日志信息。
日志信息传输模块703,用于用于通过导出接口,将日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中。
故障分析结果获得模块704,用于获得插件输出的故障分析结果,故障分析结果中,包括:插件通过对日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因。
本发明实施例提供的日志分析装置,可以加载多个插件,获取目标日志文件;通过导出接口,将目标日志文件中的日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中;获得插件输出的故障分析结果,故障分析结果中,包括:插件通过对日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因。在本发明实施例中,由于多个插件具有统一的导出接口,且插件通常是独立于应用程序而存在的,因此,在有新的故障分析需求时,可以对插件进行修改,而不需要对应用程序进行修改,便可以利用统一的导出接口将日志信息传输至插件中,从而实现对新故障进行日志分析的功能,因此,本发明实施例能够实现在不改变应用程序代码的前提下对日志分析功能的动态更新。
作为本发明实施例一种可选的实施方式,上述故障分析结果获得模块704,可以包括:
第一匹配子模块,用于插件判断日志信息中是否包含与预设的故障条件相匹配的信息。
第一出现故障的原因获得子模块,用于若是,则查找预设的故障条件与出现故障的原因之间的对应关系,获得该故障条件对应的出现故障的原因,作为应用程序出现故障的原因。
作为本发明实施例一种可选的实施方式,对应关系中包括:多个故障条件和各故障条件对应的出现故障的原因。
上述故障分析结果获得模块704,可以包括:
第二匹配子模块,用于按照预设的匹配顺序,判断日志信息是否与对应关系中的故障条件相匹配。
第二出现故障的原因获得子模块,用于当日志信息与对应关系中的当前故障条件相匹配时,获得当前故障条件对应的出现故障的原因,并判断该日志信息是否与对应关系中的下一个故障条件相匹配,直到将日志信息与对应关系中的一个故障条件不匹配,或者日志信息与对应关系中的所有故障条件均匹配。
第三匹配子模块,用于当日志信息与对应关系中的当前故障条件不匹配时,则按照预设的匹配顺序,判断下一个日志信息是否与对应关系中的故障条件相匹配。
作为本发明实施例一种可选的实施方式,插件中包括:有限状态机。
本发明实施例提供的日志分析装置还可以包括:
配置文件加载模块,用于通过插件加载该插件对应的预设的配置文件,配置文件中包括多个状态,多个状态中包括:初始状态、至少一个中间状态以及终止状态,配置文件中还包括:初始状态以及中间状态转移至下一个状态的故障条件,以及该故障条件对应的出现问题的原因;状态表示故障信息。
上述故障分析结果获得704,可以包括:
第四匹配子模块,用于判断日志信息是否与当前故障条件相匹配。
故障信息跳转子模块,用于若是,则将有限状态机中的当前故障信息跳转至,当前状态的下一个状态对应的故障信息,获得当前出现故障的原因,并执行判断日志信息是否与当前故障条件相匹配的步骤,直到当前故障信息跳转至终止状态对应的故障信息,并输出各故障条件对应的出现故障的原因。
第五匹配子模块,用于若否,则判断下一个日志信息是否与故障条件中预设的初始故障条件相匹配。
作为本发明实施例一种可选的实施方式,各插件中包含:该插件的插件类型;插件类型是基于日志信息的信息类型确定的,插件类型、信息类型以及日志分析功能具有一一对应关系。
上述日志信息传输模块703,可以包括:
过滤器队列创建子模块,用于创建多个过滤器队列,并将具有相同插件类型的插件添加至一个过滤器队列中。
信息类型获取子模块,用于获取日志信息的信息类型。
目标过滤器队列调用子模块,用于调用与信息类型对应的插件类型所对应的目标过滤器队列,并通过目标过滤器队列调用该目标过滤器队列中的各个插件,目标过滤器队列中的各个插件为具有与该日志信息相匹配的日志分析功能的插件。
日志信息传输子模块,用于通过导出接口,将日志信息传输至目标过滤器队列调用的各个插件中。
作为本发明实施例一种可选的实施方式,上述过滤器队列创建子模块,可以包括:
插件类型获取单元,用于从多个插件的导出接口中,分别获取各个插件的插件类型。
过滤器队列创建单元,用不分别创建针对不同插件类型的过滤器队列。
插件类型添加单元,用于针对多个插件中的各插件,将该插件添加至该插件的插件类型所对应的过滤器队列中。
作为本发明实施例一种可选的实施方式,故障分析结果中,还包括:
插件基于预设的出现故障的原因与解决方案之间的对应关系,确定应用程序出现故障的解决方案。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序。
处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
加载多个插件,多个插件为预先基于不同的日志分析功能进行封装获得的,多个插件具有统一的导出接口。
获取目标日志文件,目标日志文件中包含日志信息。
通过导出接口,将日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中。
获得插件输出的故障分析结果,故障分析结果中,包括:插件通过对日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一日志分析方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一日志分析方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种日志分析方法,其特征在于,所述方法包括:
加载多个插件,所述多个插件为预先基于不同的日志分析功能进行封装获得的,所述多个插件具有统一的导出接口;
获取目标日志文件,所述目标日志文件中包含日志信息;
通过所述导出接口,将所述日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中;
获得所述插件输出的故障分析结果,所述故障分析结果中,包括:所述插件通过对所述日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因。
2.根据权利要求1所述的方法,其特征在于,所述插件通过对所述日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因的步骤,包括:
所述插件判断所述日志信息中是否包含与预设的故障条件相匹配的信息;
若是,则查找预设的故障条件与出现故障的原因之间的对应关系,获得该故障条件对应的出现故障的原因,作为所述应用程序出现故障的原因。
3.根据权利要求1所述的方法,其特征在于,所述对应关系中包括:多个故障条件和各所述故障条件对应的出现故障的原因;
所述插件通过对所述日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因的步骤,包括:
按照预设的匹配顺序,判断所述日志信息是否与所述对应关系中的故障条件相匹配;
当所述日志信息与所述对应关系中的当前故障条件相匹配时,获得所述当前故障条件对应的出现故障的原因,并判断该日志信息是否与所述对应关系中的下一个故障条件相匹配,直到所述日志信息与所述对应关系中的一个故障条件不匹配,或者所述日志信息与所述对应关系中的所有故障条件均匹配;
当所述日志信息与所述对应关系中的当前故障条件不匹配时,则按照预设的匹配顺序,判断下一个日志信息是否与所述对应关系中的故障条件相匹配。
4.根据权利要求1所述的方法,其特征在于,所述插件中包括:有限状态机;
在所述通过所述导出接口,将所述日志信息传输至具有与该日志信息匹配的日志分析功能的插件中的步骤之前,所述方法还包括:
通过所述插件加载该插件对应的预设的配置文件,所述配置文件中包括多个状态,所述多个状态中包括:初始状态、至少一个中间状态以及终止状态,所述配置文件中还包括:所述初始状态以及所述中间状态转移至下一个状态的故障条件,以及该故障条件对应的出现故障的原因;所述状态表示故障信息;
所述插件通过对所述日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因的步骤,包括:
判断所述日志信息是否与当前故障条件相匹配;
若是,则将所述有限状态机中的当前故障信息跳转至,当前状态的下一个状态对应的故障信息,获得当前出现故障的原因,并执行所述判断所述日志信息是否与当前故障条件相匹配的步骤,直到所述当前故障信息跳转至所述终止状态对应的故障信息,并输出各所述故障条件对应的出现故障的原因;
若否,则判断下一个日志信息是否与故障条件中预设的初始故障条件相匹配。
5.根据权利要求1所述的方法,其特征在于,各所述插件中包含:该插件的插件类型;所述插件类型是基于所述日志信息的信息类型确定的,所述插件类型、所述信息类型以及所述日志分析功能具有一一对应关系;
所述通过所述导出接口,将所述日志信息传输至具有与该日志信息匹配的日志分析功能的插件中的步骤,包括:
创建多个过滤器队列,并将具有相同插件类型的插件添加至一个所述过滤器队列中;
获取所述日志信息的信息类型;
调用与所述信息类型对应的插件类型所对应的目标过滤器队列,并通过所述目标过滤器队列调用该目标过滤器队列中的各个插件,所述目标过滤器队列中的各个插件为所述具有与该日志信息相匹配的日志分析功能的插件;
通过所述导出接口,将所述日志信息传输至所述目标过滤器队列调用的各个插件中。
6.根据权利要求5所述的方法,其特征在于,所述创建多个过滤器队列,并将具有相同插件类型的插件添加至一个所述过滤器队列中的步骤,包括:
从多个所述插件的导出接口中,分别获取各个插件的插件类型;
分别创建针对不同插件类型的过滤器队列;
针对所述多个插件中的各插件,将该插件添加至该插件的插件类型所对应的过滤器队列中。
7.一种日志分析装置,其特征在于,所述装置包括:
插件加载模块,用于加载多个插件,所述多个插件为预先基于不同的日志分析功能进行封装获得的,所述多个插件具有统一的导出接口;
目标日志文件获取模块,用于获取目标日志文件,所述目标日志文件中包含日志信息;
日志信息传输模块,用于通过所述导出接口,将所述日志信息传输至具有与该日志信息相匹配的日志分析功能的插件中;
故障分析结果获得模块,用于获得所述插件输出的故障分析结果,所述故障分析结果中,包括:所述插件通过对所述日志信息进行分析,基于日志信息中与预设故障条件相匹配的信息,以及预设的故障条件和出现故障的原因之间的对应关系,获得应用程序出现故障的原因。
8.根据权利要求7所述的装置,其特征在于,所述故障分析结果获得模块,包括:
第一匹配子模块,用于所述插件判断所述日志信息中是否包含与预设的故障条件相匹配的信息;
第一出现故障的原因获得子模块,用于若是,则查找预设的故障条件与出现故障的原因之间的对应关系,获得该故障条件对应的出现故障的原因,作为所述应用程序出现故障的原因。
9.根据权利要求7所述的装置,其特征在于,所述对应关系中包括:多个故障条件和各所述故障条件对应的出现故障的原因;
所述故障分析结果获得模块,包括:
第二匹配子模块,用于按照预设的匹配顺序,判断所述日志信息是否与所述对应关系中的故障条件相匹配;
第二出现故障的原因获得子模块,用于当所述日志信息与所述对应关系中的当前故障条件相匹配时,获得所述当前故障条件对应的出现故障的原因,并判断该日志信息是否与所述对应关系中的下一个故障条件相匹配,直到所述日志信息与所述对应关系中的一个故障条件不匹配,或者所述日志信息与所述对应关系中的所有故障条件均匹配;
第三匹配子模块,用于当所述日志信息与所述对应关系中的当前故障条件不匹配时,则按照预设的匹配顺序,判断下一个日志信息是否与所述对应关系中的故障条件相匹配。
10.根据权利要求7所述的装置,其特征在于,所述插件中包括:有限状态机;
所述装置还包括:
配置文件加载模块,用于通过所述插件加载该插件对应的预设的配置文件,所述配置文件中包括多个状态,所述多个状态中包括:初始状态、至少一个中间状态以及终止状态,所述配置文件中还包括:所述初始状态以及所述中间状态转移至下一个状态的故障条件,以及该故障条件对应的出现故障的原因;所述状态表示故障信息;
所述故障分析结果获得模块,包括:
第四匹配子模块,用于判断所述日志信息是否与当前故障条件相匹配;
故障信息跳转子模块,用于若是,则将所述有限状态机中的当前故障信息跳转至,当前状态的下一个状态对应的故障信息,获得当前出现故障的原因,并执行所述判断所述日志信息是否与当前故障条件相匹配的步骤,直到所述当前故障信息跳转至所述终止状态对应的故障信息,并输出各所述故障条件对应的出现故障的原因;
第五匹配子模块,用于若否,则判断下一个日志信息是否与故障条件中预设的初始故障条件相匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011624735.3A CN112667426B (zh) | 2020-12-31 | 2020-12-31 | 日志分析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011624735.3A CN112667426B (zh) | 2020-12-31 | 2020-12-31 | 日志分析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112667426A true CN112667426A (zh) | 2021-04-16 |
CN112667426B CN112667426B (zh) | 2023-09-05 |
Family
ID=75412281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011624735.3A Active CN112667426B (zh) | 2020-12-31 | 2020-12-31 | 日志分析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667426B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113660223A (zh) * | 2021-07-28 | 2021-11-16 | 上海纽盾科技股份有限公司 | 基于告警信息的网络安全数据处理方法、装置及系统 |
CN113806319A (zh) * | 2021-08-16 | 2021-12-17 | 中国人民解放军海军潜艇学院 | 航海日志电子化方法及系统 |
CN114297166A (zh) * | 2021-12-24 | 2022-04-08 | 奇安信科技集团股份有限公司 | 插件配置式日志转发方法、装置、电子设备及存储介质 |
US11822939B2 (en) | 2022-03-24 | 2023-11-21 | Oracle International Corporation | Collaborative analysis system for analyzing logs |
US11914563B2 (en) | 2022-03-24 | 2024-02-27 | Oracle International Corporation | Data structure generation system for analyzing logs |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5872966A (en) * | 1996-05-10 | 1999-02-16 | Apple Computer, Inc. | System and method for logging and enabling further manipulation of system state information |
JPH11327967A (ja) * | 1998-05-18 | 1999-11-30 | Mitsubishi Electric Corp | ログファイル解析装置 |
CN105159809A (zh) * | 2015-09-29 | 2015-12-16 | 杭州华为数字技术有限公司 | 基于状态机故障定位方法以及装置 |
CN106055609A (zh) * | 2016-05-25 | 2016-10-26 | 北京小米移动软件有限公司 | nginx日志监控方法、装置、消息分布系统及信息处理的装置 |
CN107872353A (zh) * | 2017-12-27 | 2018-04-03 | 北京奇艺世纪科技有限公司 | 一种故障定位方法及装置 |
CN109905262A (zh) * | 2017-12-11 | 2019-06-18 | 上海逸云信息科技发展有限公司 | 一种cdn设备服务的监控系统及监控方法 |
WO2019228190A1 (zh) * | 2018-05-29 | 2019-12-05 | 华为技术有限公司 | 网络故障分析方法及装置 |
CN111209135A (zh) * | 2020-01-03 | 2020-05-29 | 深圳前海微众银行股份有限公司 | 一种日志处理方法及装置 |
US20200193426A1 (en) * | 2018-12-18 | 2020-06-18 | Secude Ag | Method and system for creating and updating an authentic log file for a computer system and transactions |
-
2020
- 2020-12-31 CN CN202011624735.3A patent/CN112667426B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5872966A (en) * | 1996-05-10 | 1999-02-16 | Apple Computer, Inc. | System and method for logging and enabling further manipulation of system state information |
JPH11327967A (ja) * | 1998-05-18 | 1999-11-30 | Mitsubishi Electric Corp | ログファイル解析装置 |
CN105159809A (zh) * | 2015-09-29 | 2015-12-16 | 杭州华为数字技术有限公司 | 基于状态机故障定位方法以及装置 |
CN106055609A (zh) * | 2016-05-25 | 2016-10-26 | 北京小米移动软件有限公司 | nginx日志监控方法、装置、消息分布系统及信息处理的装置 |
CN109905262A (zh) * | 2017-12-11 | 2019-06-18 | 上海逸云信息科技发展有限公司 | 一种cdn设备服务的监控系统及监控方法 |
CN107872353A (zh) * | 2017-12-27 | 2018-04-03 | 北京奇艺世纪科技有限公司 | 一种故障定位方法及装置 |
WO2019228190A1 (zh) * | 2018-05-29 | 2019-12-05 | 华为技术有限公司 | 网络故障分析方法及装置 |
US20200193426A1 (en) * | 2018-12-18 | 2020-06-18 | Secude Ag | Method and system for creating and updating an authentic log file for a computer system and transactions |
CN111209135A (zh) * | 2020-01-03 | 2020-05-29 | 深圳前海微众银行股份有限公司 | 一种日志处理方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113660223A (zh) * | 2021-07-28 | 2021-11-16 | 上海纽盾科技股份有限公司 | 基于告警信息的网络安全数据处理方法、装置及系统 |
CN113806319A (zh) * | 2021-08-16 | 2021-12-17 | 中国人民解放军海军潜艇学院 | 航海日志电子化方法及系统 |
CN113806319B (zh) * | 2021-08-16 | 2023-07-14 | 中国人民解放军海军潜艇学院 | 航海日志电子化方法及系统 |
CN114297166A (zh) * | 2021-12-24 | 2022-04-08 | 奇安信科技集团股份有限公司 | 插件配置式日志转发方法、装置、电子设备及存储介质 |
US11822939B2 (en) | 2022-03-24 | 2023-11-21 | Oracle International Corporation | Collaborative analysis system for analyzing logs |
US11914563B2 (en) | 2022-03-24 | 2024-02-27 | Oracle International Corporation | Data structure generation system for analyzing logs |
US12106123B2 (en) | 2022-03-24 | 2024-10-01 | Oracle International Corporation | Collaborative analysis system for analyzing logs |
US12106122B2 (en) | 2022-03-24 | 2024-10-01 | Oracle International Corporation | Generating a hierarchical data structure that represents a log |
Also Published As
Publication number | Publication date |
---|---|
CN112667426B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112667426B (zh) | 日志分析方法及装置 | |
CN108897691B (zh) | 基于接口模拟服务的数据处理方法、装置、服务器和介质 | |
WO2021180025A1 (zh) | 一种消息处理方法、装置、电子设备及介质 | |
CN109492181B (zh) | 页面跳转方法、装置、计算机设备和存储介质 | |
CN108415998B (zh) | 应用依赖关系更新方法、终端、设备及存储介质 | |
CN107276842B (zh) | 接口测试方法、装置及电子设备 | |
CN107644075B (zh) | 收集页面信息的方法和装置 | |
CN111353143A (zh) | 敏感权限检测方法、装置及存储介质 | |
CN110866031B (zh) | 数据库访问路径的优化方法、装置、计算设备以及介质 | |
CN113204558B (zh) | 数据表结构自动更新方法和装置 | |
CN111050217B (zh) | 一种视频播放方法及装置 | |
CN110647331A (zh) | 开发工具的获取方法及装置、存储介质、电子设备 | |
CN115269063A (zh) | 进程创建方法、系统、设备及介质 | |
CN114968696A (zh) | 指标监控方法、电子设备及芯片系统 | |
CN114371866A (zh) | 业务系统的版本重构测试方法、装置和设备 | |
CN113127099A (zh) | 服务器配置方法、装置、设备及存储介质 | |
CN111176762A (zh) | 批量处理程序的执行方法及装置、电子设备和可存储介质 | |
CN111176969B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN113377674B (zh) | 一种日志代码添加方法及装置 | |
CN110209513B (zh) | 一种应用程序的广播注册方法、装置、设备及介质 | |
CN118413716B (zh) | 机顶盒应用监控方法、系统、终端及存储介质 | |
CN111324846B (zh) | 信息处理方法、装置、电子设备及计算机可读存储介质 | |
CN117793189A (zh) | 数据的发送方法、装置及存储介质 | |
CN115858187A (zh) | 一种数据上报方法、装置、计算机设备以及存储介质 | |
CN116257375A (zh) | Kafka数据自动化流处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |