本发明涉及通信技术领域,特别是涉及一种日志文件的分析方法和系统。
背景技术:
在很多大型软件、电子、网络系统中,日志文件都是必不可少的存在,它们对于查阅系统状况有着重要意义。在大型软件系统中,通常有很多线程同时运行,它们的日志一般输入在同一个日志文件中。如果日志设计者令每个重要函数的运行都要在日志里记录一下,那么日志的内容无疑会变得非常繁杂。这类繁杂的日志通常为多线程并行,按发生时间先后输出日志到一个文件;或者有很多硬件终端接入,它们的驱动层、功能层等等的操作都会记录日志;或者有很多在线用户同时接入服务器后端,他们的行为都将被记录在日志中。
日志文件的存在有着非常重要的意义。例如,它们为下位机软件开发或者网站后台维护人员分析系统行为、诊断系统运行是否运行正常有着非常重要的意义。日志文件的主要目的是为了帮助系统开发人员定位和解决问题,但是使用者往往也能利用日志文件中异常数据进行系统异常的处理,但随着运行时间的增加,尤其是上述多线程并行的系统,日志文件所包含的信息量会越来越多,使用者想要从日志文件中获得有效信息的困难也越来越高。
内容过为密集的日志文件,包含了多个线程的日志,信息量大,时间节点非常精确,由于现有的日志文件大多是txt的简单文字格式,只能使用系统自带的文本编辑软件进行打开、阅读,并没有分析系统帮助查阅,可阅读性不高,只能靠程序员一行一行地肉眼搜索,程序员很难在短时间内定位到自己所要找的问题及事件,使得日志文件的定位查找、搜索效率不高。
技术实现要素:
本发明提供了一种日志文件的分析方法和系统,以解决日志文件的定位查找、搜索效率不高的问题。
为了解决上述问题,本发明公开了一种日志文件的分析方法,包括:建立数据库,所述数据库包括流程关键词和/或对象关键词;接收待分析的日志文件,从所述日志文件中依次按行提取待分析的文字流;将所述文字流与所述数据库中的流程关键词或对象关键词进行匹配;根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程或对象关键词所属的对象中;将所述文字流按照其所属的流程或对象分类存储。
可选地,所述将所述文字流按照其所属的流程或对象分类存储之后,还包括:判断所述日志文件中是否包含待分析的文字流;当所述日志文件中包含待分析的文字流时,返回所述从所述日志文件中依次按行提取待分析的文字流的步骤;当所述日志文件中未包含待分析的文字流时,以所述流程或对象为单位显示所述日志文件,并结束对所述日志文件的分析。
可选地,所述流程关键词包括一级关键词和二级关键词,所述一级关键词标志流程开始或结束,所述二级关键词标志所述一级关键词所属流程中的子流程;所述将所述文字流与所述数据库中的流程关键词进行匹配,包括:从所述文字流中查找与数据库对应的所述一级关键词;当从所述文字流中查找到与数据库对应的一级关键词时,匹配成功,标记该一级关键词;当从所述文字流中未查找到与数据库对应的一级关键词时,从所述文字流中查找与数据库对应的所述二级关键词;当从所述文字流中查找到与数据库对应的二级关键词时,匹配成功,标记该二级关键词。
可选地,所述根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程中,包括:当所述文字流中标记有一级关键词时,将所述文字流归类到所述一级关键词标志的流程中;当所述文字流中未标记有一级关键词但标记有二级关键词时,将所述文字流归类到所述二级关键词标志的子流程所对应的流程中。
可选地,所述将所述文字流按照其所属的流程分类存储,包括:将所述文字流所属的流程存储为流程列表;将所述文字流存储为所述流程列表中对 应的流程信息。
可选地,所述将所述文字流与所述数据库中的对象关键词进行匹配,包括:从所述文字流中查找与数据库对应的所述对象关键词;当从所述文字流中查找到与数据库对应的对象关键词时,匹配成功;当从所述文字流中未查找到与数据库对应的对象关键词时,匹配失败,根据所述文字流创建新对象并添加到所述数据库中。
可选地,所述根据匹配结果,将所述文字流归类到其对应的对象关键词所属的对象中,包括:当匹配成功时,将所述文字流归类到其对应的对象关键词所属的对象中;当匹配失败时,将所述文字流归类到所述新对象中。
可选地,所述将所述文字流按照其所属的对象分类存储,包括:将所述文字流所属的对象存储为对象列表;将所述文字流存储为所述对象列表中对应的对象信息。
可选地,还包括:统计所述文字流的运行时间、事件个数和对应的事件级别;将同一流程下各文字流的运行时间相加,和作为该流程的持续时间;根据同一流程下各文字流的事件个数和对应的事件级别,统计得到该流程的错误数量。
本发明还公开了一种日志文件的分析系统,包括:数据库建立模块,用于建立数据库,所述数据库包括流程关键词和/或对象关键词;提取模块,用于接收待分析的日志文件,从所述日志文件中依次按行提取待分析的文字流;匹配模块,用于将所述文字流与所述数据库中的流程关键词或对象关键词进行匹配;归类模块,用于根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程或对象关键词所属的对象中;存储模块,用于将所述文字流按照其所属的流程或对象分类存储。
可选地,还包括:判断显示模块,用于所述存储模块将所述文字流按照其所属的流程或对象分类存储之后,判断所述日志文件中是否包含待分析的文字流;当所述日志文件中包含待分析的文字流时,返回所述提取模块从所述日志文件中依次按行提取待分析的文字流;当所述日志文件中未包含待分析的文字流时,以所述流程或对象为单位显示所述日志文件,并结束对所述 日志文件的分析。
可选地,所述流程关键词包括一级关键词和二级关键词,所述一级关键词标志流程开始或结束,所述二级关键词标志所述一级关键词所属流程中的子流程;所述匹配模块包括流程匹配子模块;所述流程匹配子模块,用于从所述文字流中查找与数据库对应的所述一级关键词;当从所述文字流中查找到与数据库对应的一级关键词时,匹配成功,标记该一级关键词;当从所述文字流中未查找到与数据库对应的一级关键词时,从所述文字流中查找与数据库对应的所述二级关键词;当从所述文字流中查找到与数据库对应的二级关键词时,匹配成功,标记该二级关键词。
可选地,所述归类模块包括流程归类子模块;所述流程归类子模块用于当所述文字流中标记有一级关键词时,将所述文字流归类到所述一级关键词标志的流程中;当所述文字流中未标记有一级关键词但标记有二级关键词时,将所述文字流归类到所述二级关键词标志的子流程所对应的流程中。
可选地,所述存储模块包括流程存储子模块;所述流程存储子模块,用于将所述文字流所属的流程存储为流程列表;将所述文字流存储为所述流程列表中对应的流程信息。
可选地,所述匹配模块包括对象匹配子模块;所述对象匹配子模块,用于从所述文字流中查找与数据库对应的所述对象关键词;当从所述文字流中查找到与数据库对应的对象关键词时,匹配成功;当从所述文字流中未查找到与数据库对应的对象关键词时,匹配失败,根据所述文字流创建新对象并添加到所述数据库中。
可选地,所述归类模块包括对象归类子模块;所述对象归类子模块,用于当匹配成功时,将所述文字流归类到其对应的对象关键词所属的对象中;当匹配失败时,将所述文字流归类到所述新对象中。
可选地,所述存储模块包括对象存储子模块;所述对象存储子模块,用于将所述文字流所属的对象存储为对象列表;将所述文字流存储为所述对象列表中对应的对象信息。
可选地,还包括:
统计模块,用于统计所述文字流的运行时间、事件个数和对应的事件级别;将同一流程下各文字流的运行时间相加,和作为该流程的持续时间;根据同一流程下各文字流的事件个数和对应的事件级别,统计得到该流程的错误数量。
与现有技术相比,本发明包括以下优点:
本发明通过首先建立数据库,所述数据库包括流程关键词和/或对象关键词;其次接收待分析的日志文件,从所述日志文件中依次按行提取待分析的文字流;再次将所述文字流与所述数据库中的流程关键词或对象关键词进行匹配;复次根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程或对象关键词所属的对象中;最后将所述文字流按照其所属的流程或对象分类存储,实现了对日志文件的智能分析,能够智能地分解多线程日志的繁杂内容,将日志文件按系统动作分割为若干流程或对象,将所述文字流按照其所属的流程或对象分类存储,大大增加了日志文件的可阅读性和定位查找、搜索效率,方便程序员进行阅读、搜索。
附图说明
图1是本发明实施例一种日志文件的分析方法的流程图;
图2是本发明另一实施例一种日志文件的分析方法的流程图;
图3是本发明实施例日志文件分析系统的分析选项卡界面示意图;
图4是本发明实施例日志文件分析系统的对象选项卡界面示意图;
图5是本发明实施例按流程对日志文件进行分析的方法的流程图;
图6是本发明实施例按对象对日志文件进行分析的方法的流程图;
图7是本发明实施例一种日志文件的分析系统的结构框图;
图8是本发明另一实施例一种日志文件的分析系统的结构框图;
图9是本发明另一实施例一种日志文件的分析系统的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附 图和具体实施方式对本发明作进一步详细的说明。
实施例一:
参照图1,示出了根据本发明一个实施例的一种日志文件的分析方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,建立数据库,所述数据库包括流程关键词和/或对象关键词。
本实施例在对日志文件进行分析之前,先建立数据库。数据库具体可以包括流程数据库和对象数据库,其中,流程数据库包括流程关键词,流程关键词具体可以是标志流程开始或结束的关键词;对象数据库包括对象关键词,对象关键词是能够区分对象的关键词,具体可以是对象名称。具体实现时可以根据实际硬件情况建立对象数据库。
需要说明的是,本实施例对建立数据库的具体方式和数据库的具体形式不做限定,数据库具体可以是列表等形式,包含能够标志流程和/或区分对象的关键词即可。并且,本实施例所述数据库包括流程关键词和/或对象关键词,代表三种实现方式,即(1)数据库中只包括流程关键词;(2)数据库中只包括对象关键词;(3)数据库中包括流程关键词和对象关键词。具体实现时,可以根据实际需要任意选择一种实现方式即可。
需要说明的是,本实施例中流程关键词用于流程分析法,对象关键词用于对象分析法,由于流程分析法与对象分析法的步骤大体相同,因此本实施例对根据流程关键词进行分析与依据对象关键词进行分析进行统一说明,具体实现时,可以选择流程分析法、对象分析法中的一种或几种进行分析,本实施例对此不做限制。
步骤102,接收待分析的日志文件,从所述日志文件中依次按行提取待分析的文字流。
日志文件通常包含大量信息,内容非常详细,时间节点非常精确,而且包含了多个线程的日志,但是包含大量信息的日志文件同样是由很多行文字流组成的,只是一般信息量越大的日志文件,所包含的文字流行数也越多。本实施例接收待分析的日志文件,然后从所述日志文件中依次按行提取待分析的文字流,依次按行提取文字流即依次从日志文件的开头处开始提取一行 待分析的文字流,因为日志文件中的文字流通常是根据时间先后进行记录的,依次按行提取可以尽快遍历文字流,并且容易保证不遗漏,可以通过判断所述日志文件是否结束来判断是否遍历完所述日志文件。当然如果按照其他顺序提取文字流也可以,同样需要保证提取完日志文件所包含的所有文字流,只是按照其他顺序提取没有依次按行提取效率高。
需要说明的是,由于一行文字流通常包含完整的信息,因此本实施例采取按行提取的方式进行提取文字流,文字流具体可以包括:所述文字流的日期、时间、来源、事件级别和内容等信息。
步骤103,将所述文字流与所述数据库中的流程关键词或对象关键词进行匹配。
本实施例中提取到一行待分析的文字流之后,将该行文字流与步骤101中建立的数据库进行匹配,具体可以与数据库中的流程关键词或对象关键词进行匹配。需要说明的是,流程与对象是两个维度的概念,将所述文字流与流程关键词进行匹配是为了获知该行文字流所属的具体流程,即属于“抽真空”这一流程步骤;而将所述文字流与对象进行匹配,是为了获知该行文字流所对应的硬件对象。如果在该行文字流中可以查找到数据库中所包括的流程关键词,则说明按照流程关键词匹配成功;如果在该行文字流中可以查找到数据库中所包括的对象关键词,则说明按照对象关键词匹配成功。匹配成功后,即可获知该行文字流所属的具体流程或者具体对象了。
步骤104,根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程或对象关键词所属的对象中。
通过步骤103将所提取的该行文字流与所述数据库中的流程关键词或对象关键词进行匹配,可以获知该行文字流所属的具体流程或对象,即实现了对该行文字流按照流程或对象进行归类,根据匹配结果所显示的流程或对象,就可以将该行文字流归类到其对应的流程关键词所属的流程或对象关键词所属的对象中了。由于日志文件中的所有文字流都要经过步骤104的归类步骤,因此最终同一个流程类别下可以包括多行文字流,一个对象类别下也可以包括多行文字流,但是对于一行文字流来说,属于一个特定的流程或对 象。
本实施例说明了两种归类方式,即按照流程归类、按照对象归类,没有提及其他归类方式是因为从实际工作角度来看,这两种是最有实际应用价值的分类方法,可以有效提高开发人员查阅日志的效率。至于其他归类方式,因为相对实用性不够,且实现时步骤流程与上述两种归类方式相似,因此本实施例不再说明,但是本实施例并非对具体归类方式的限制。
步骤105,将所述文字流按照其所属的流程或对象分类存储。
本实施例中将所述文字流按照其所属的流程或对象分类存储,即将该行文字流存储到其所属的流程类别下,或存储到其所属的对象类别下。例如,该行文字流所述的流程为“抽真空”,则将该行文字流存储在“抽真空”这一流程类别下,后续点击“抽真空”这一流程类别,该行文字流就可以显示出来。
本实施例通过首先建立数据库,所述数据库包括流程关键词和/或对象关键词;其次接收待分析的日志文件,从所述日志文件中依次按行提取待分析的文字流;再次将所述文字流与所述数据库中的流程关键词或对象关键词进行匹配;复次根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程或对象关键词所属的对象中;最后将所述文字流按照其所属的流程或对象分类存储,实现了对日志文件的智能分析,能够智能地分解多线程日志的繁杂内容,将日志文件按系统动作分割为若干流程或对象,将所述文字流按照其所属的流程或对象分类存储,大大增加了日志文件的可阅读性和定位查找、搜索效率,方便程序员进行阅读、搜索。
实施例二:
在上述实施例的基础上,本实施例继续说明日志文件的分析方法。
参照图2,示出了根据本发明一个实施例的一种日志文件的分析方法实施例的步骤流程图,具体可以包括如下步骤:
步骤201,建立数据库,所述数据库包括流程关键词和/或对象关键词。
本实施例在对日志文件进行分析之前,先建立数据库。数据库具体可以包括流程数据库和对象数据库,其中,流程数据库包括流程关键词,流程关 键词具体可以是标志流程开始或结束的关键词;对象数据库包括对象关键词,对象关键词是能够区分对象的关键词,具体可以是对象名称。具体实现时可以根据实际硬件情况建立对象数据库。
步骤202,接收待分析的日志文件,从所述日志文件中依次按行提取待分析的文字流。
本实施例接收待分析的日志文件,然后从所述日志文件中依次按行提取待分析的文字流,依次按行提取文字流即依次从日志文件的开头处开始提取一行待分析的文字流,因为日志文件中的文字流通常是根据时间先后进行记录的,依次按行提取可以尽快遍历文字流,并且容易保证不遗漏,可以通过判断所述日志文件是否结束来判断是否遍历完所述日志文件。当然如果按照其他顺序提取文字流也可以,同样需要保证提取完日志文件所包含的所有文字流,只是按照其他顺序提取没有依次按行提取效率高。
下面结合图3所示的日志文件分析系统的分析选项卡界面示意图对本实施例进行说明。本实施例中步骤202接收待分析的日志文件,可以通过图3中的导入按钮来实现,点击导入按钮,接收待分析的日志文件,例如可以接收多线程的日志内容,并且在关键函数、关键流程处将时间点记录在日志中。接收待分析的日志文件之后,在所述界面中上部就会显示出日志文件的名字“syslog20141017-2.txt”,由于任何一个软件系统输出的日志文件都有相对比较统一的格式,所以能够按照本实施例提供的日志文件的分析方法,将日志文件所包含的内容智能分解为若干流程,显示在图3中的左侧界面上。需要说明的是,图4所示的日志文件分析系统的对象选项卡界面示意图中,导入按钮同样可以实现步骤202接收待分析的日志文件的功能,本实施例在此不做赘述。
步骤203,将所述文字流与所述数据库中的流程关键词或对象关键词进行匹配。
本实施例中将步骤203分为“将所述文字流与所述数据库中的流程关键词进行匹配”和“将所述文字流与所述数据库中的对象关键词进行匹配”两个部分进行说明。
首先,对“将所述文字流与所述数据库中的流程关键词进行匹配”进行说明。本实施例中所述流程关键词包括一级关键词和二级关键词,所述一级关键词标志流程开始或结束,例如机械手的取片放片。所述二级关键词标志所述一级关键词所属流程中的子流程,例如进PM之前的抽气开阀动作。本实施例中所述将所述文字流与所述数据库中的流程关键词进行匹配,具体可以通过以下方式来实现:从所述文字流中查找与数据库对应的所述一级关键词;当从所述文字流中查找到与数据库对应的一级关键词时,匹配成功,标记该一级关键词;当从所述文字流中未查找到与数据库对应的一级关键词时,从所述文字流中查找与数据库对应的所述二级关键词;当从所述文字流中查找到与数据库对应的二级关键词时,匹配成功,标记该二级关键词。在本发明的一种优选实施例中,当从所述文字流中查找到与数据库对应的一级关键词时,可以统计该行文字流的运行时间、错误数量等信息。
其次,对“将所述文字流与所述数据库中的对象关键词进行匹配”进行说明。本实施例中所述将所述文字流与所述数据库中的对象关键词进行匹配,具体可以通过以下方式来实现:从所述文字流中查找与数据库对应的所述对象关键词;当从所述文字流中查找到与数据库对应的对象关键词时,匹配成功;当从所述文字流中未查找到与数据库对应的对象关键词时,匹配失败,根据所述文字流创建新对象并添加到所述数据库中。
步骤204,根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程或对象关键词所属的对象中。
本实施例中将步骤205分为“根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程中”和“根据匹配结果,将所述文字流归类到其对应的对象关键词所属的对象中”两个部分进行说明。
首先,对“根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程中”进行说明。本实施例中所述根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程中,具体可以通过以下方式来实现:当所述文字流中标记有一级关键词时,将所述文字流归类到所述一级关键词标志的流程中;当所述文字流中未标记有一级关键词但标记有二级关键词时,将 所述文字流归类到所述二级关键词标志的子流程所对应的流程中。
其次,对“根据匹配结果,将所述文字流归类到其对应的对象关键词所属的对象中”进行说明。本实施例中所述根据匹配结果,将所述文字流归类到其对应的对象关键词所属的对象中,具体可以通过以下方式来实现:当匹配成功时,将所述文字流归类到其对应的对象关键词所属的对象中;当匹配失败时,将所述文字流归类到所述新对象中。
步骤205,将所述文字流按照其所属的流程或对象分类存储。
本实施例中将步骤205分为“将所述文字流按照其所属的流程分类存储”和“将所述文字流按照其所属的对象分类存储”两个部分进行说明。
首先,对“根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程中”进行说明。本实施例中所述将所述文字流按照其所属的流程分类存储,具体可以通过以下方式来实现:将所述文字流所属的流程存储为流程列表;将所述文字流存储为所述流程列表中对应的流程信息。需要说明的是,本实施例中所述流程信息具体可以包括所述文字流的日期、时间、来源、事件级别和内容。
其次,对“将所述文字流按照其所属的对象分类存储”进行说明。本实施例中所述将所述文字流按照其所属的对象分类存储,具体可以通过以下方式来实现:将所述文字流所属的对象存储为对象列表;将所述文字流存储为所述对象列表中对应的对象信息。本实施例中所述对象信息具体可以包括所述文字流的日期、时间、来源、事件级别和内容。
步骤206,判断所述日志文件中是否包含待分析的文字流。
本实施例在步骤205将所述文字流按照其所属的流程或对象分类存储之后,都进行判断,即判断所述日志文件中是否包含待分析的文字流,目的是为了确保该待分析日志文件中包含的所有文字流都通过本实施例提供的日志文件的分析方法进行分析,以免有遗漏的文字流未进行分析。
当所述日志文件中包含待分析的文字流时,说明该日志文件还没有遍历完,需要返回步骤202执行从所述日志文件中依次按行提取待分析的文字流的步骤。当所述日志文件中未包含待分析的文字流时,说明该日志文件已经 遍历完,此时执行步骤207,以所述流程或对象为单位显示所述日志文件,并结束对所述日志文件的分析。
步骤207,当所述日志文件中未包含待分析的文字流时,以所述流程或对象为单位显示所述日志文件,并结束对所述日志文件的分析。
从图3所示的日志文件分析系统的分析选项卡界面示意图中可以看出,单击选择一个子流程之后,“分析”选项卡下的右侧窗口会显示出对应流程的日志内容,即属于该子流程的文字流,这样就避免了大海捞针般地不停翻页仅靠肉眼搜索,便于程序员快速查找、定位日志文件所反映的问题。本实施例将日志文件中的文字流归类显示,大大提高了开发、维护人员的搜索效率。将日志文件按流程或按对象进行分门别类地显示,大大增加了日志的可阅读性和查找效率。
结合图4所示的日志文件分析系统的对象选项卡界面示意图,本实施例提供的日志文件的分析方法,通过自动搜索归类,可以将所有输出了日志记录的硬件对象进行分类,对象列表显示在左侧,单击某个对象,属于它们的日志内容就可以显示在右侧窗口中。这样自动地归类,可以免去程序员靠肉眼不停上下翻页查找某个硬件对象状态的辛苦。无论是按流程还是按对象查找,都可以实现高效率少耗时。
在本发明的一个优选实施例中,日志文件的分析方法还包括:统计所述文字流的运行时间、事件个数和对应的事件级别;将同一流程下各文字流的运行时间相加,和作为该流程的持续时间;根据同一流程下各文字流的事件个数和对应的事件级别,统计得到该流程的错误数量。需要说明的是,所述文字流的运行时间,即其对应的代码运行了多少时间,对应图3中的过程持续时间;事件个数是指该行文字流发生了多少件“系统事件”,“系统事件”是由IAP代码库定义的,分为从“UNKNOWN(严重的未知错误)”到“VERBOSE(系统运行普通事件)”六个级别,对应图3中的UNKNOWN、FATAL、ERROR、PROBLEM、EVENT、VERBOSE。具体实现时,单击复选框可自定义查看相应级别的事件列表。例如只勾选“VERBOSE”,那么下面的表格里面就只显示VERBOSE级别的事件,依靠这些数据就可以统计代 码单位时间出错率等信息了。本实施例中所述该流程的错误数量,即在该流程中各类错误的出现数量,对应图3中的“出现错误数量”。
实施例三:
在上述实施例的基础上,本实施例继续说明日志文件的分析方法,具体说明按流程对日志文件进行分析的方法。
参照图5,示出了根据本发明一个实施例的一种按流程对日志文件进行分析的方法实施例的步骤流程图,具体可以包括如下步骤:
步骤501,从日志文件开头提取一行新的文字流。
需要说明的是,本实施例是为了清楚描述按流程对日志文件进行分析的方法,因此将前述实施例中有关流程分析方法的部分提取出来进行说明,对于流程分析方法与对象分析方法相同的部分,例如先建立数据库,本实施例在此不做赘述,可以参照前述实施例中的相关内容进行理解。步骤501与前述实施例中的步骤202中从所述日志文件中依次按行提取待分析的文字流一致,可以参照对应内容进行理解。
本实施例以实际的生产日志为例,对流程分析法进行举例说明。日志文件部分内容如下:
2014-10-17 15:43:02.738APP EVENT LB:OperationalAttachedModule::do_PrepChamb start-AFE1
2014-10-17 15:43:02.739APP VERBOSE ProcessChamber:call_PrepareChamber.
2014-10-17 15:43:02.739APP VERBOSE/Control/Platform/LB/Vacuum/PC:PressureController:Entering isAtState(/Control/Platform/LB/Vacuum/PC/PCSeqs/VentSequence/OverVent).
本实施例中步骤501从日志文件开头提取一行新的文字流,如下:
2014-10-17 15:43:02.738APP EVENT LB:OperationalAttachedModule::do_PrepChamb start-AFE1
步骤502,从所述文字流中查找与数据库对应的一级关键词。
步骤502即在提取出的该行文字流中查找是否存在数据库中的一级关键 词,如果存在说明在该行文字流中能够查找到所述一级关键词,如果不存在说明该行文字流中不能查找到所述一级关键词。步骤502与前述实施例中的步骤203中“将所述文字流与所述数据库中的流程关键词进行匹配”一致,相关内容可参见对应实施例中的描述。本实施例中从步骤501提取到的文字流中寻找与数据库对应的“一级关键词”。数据库为事先建立好,里面记录了所有标志着重要流程开始结束的关键词。
步骤503,当从所述文字流中查找到与数据库对应的一级关键词时,标记该一级关键词,并统计该行文字流所包含的时间、错误数量等信息。
当从所述文字流中查找到与数据库对应的一级关键词时,说明在该行文字流中能够查找到所述一级关键词,此时标记该一级关键词,因为所述一级关键词标志流程开始或结束。
本实施例在步骤501提取出来的这行文字流中搜索到一级关键词“do_PrepChamb start”,因为这个步骤开始意味着LoadLock B腔室开始抽真空了。所以把这个关键词标记下来,并且记录这行文字包含的时间:2014-10-17 15:43:02.738,来源:APP,事件级别:EVENT,以及详细内容:LB:OperationalAttachedModule::do_PrepChamb start-AFE1,便于后来对该步骤时间、发生错误数量的统计。那么这一行读完了,开始继续提取下一行文字流。
步骤504,当从所述文字流中未查找到与数据库对应的一级关键词时,从所述文字流中查找与数据库对应的二级关键词。
由于数据库中包括一级关键词和二级关键词,所述一级关键词标志流程开始或结束,例如机械手的取片放片。所述二级关键词标志所述一级关键词所属流程中的子流程,例如进PM之前的抽气开阀动作,因此当从所述文字流中未查找到与数据库对应的一级关键词时,从所述文字流中查找与数据库对应的二级关键词,通过二级关键词也可以获知该行文字流所属的流程。
步骤505,当从所述文字流中查找到与数据库对应的二级关键词时,标记该二级关键词。
如果本实施例中步骤501提取到的文字流如下:
2014-10-17 15:43:02.739APP VERBOSE ProcessChamber:call_PrepareChamber.
则该行文字流并没有一级关键词,因为它的意思是开始调用代码中的某一个功能函数,属于腔室抽真空的流程中的小步骤。所以继续与数据库中的二级关键词对照,发现这句子中有,即“call_PrepareChamber”。这是进入“准备抽气”的流程阶段,在数据库中标记是属于一级关键词“do_PrepChambstart”的。所以把这句日志归类在一级关键词do_PrepChamb start(即“LB开始抽真空”)下。之所以要查找二级关键词,是因为这是多线程的日志,按时间顺序发生的两个动作不一定属于一个重要流程。所以要根据数据库中的关键词归属来进行分类。接下来的动作也是如此,一行一行地读入新的日志内容,查找一级、二级关键词,如果是一级关键词,还要记录其开始结束时间,及发生错误数量等统计信息。
步骤506,按所属流程分类存储。
需要说明的是,当从所述文字流中未查找到与数据库对应的二级关键词时,直接执行步骤506按所属流程分类存储,此时可以人工判断该文字流属于哪个流程。
步骤507,判断日志文件是否遍历结束。当日志文件遍历结束时,执行步骤508显示流程列表与流程详细列表,当日志文件未遍历结束时,返回步骤501从日志文件开头提取一行新的文字流。
步骤508,显示流程列表与流程详细列表。
如图3所示,界面左侧分析选项卡下的内容为流程列表,点击流程列表中的一个流程,相应出现在界面右侧部分的内容即为流程详细列表,流程详细列表包括该流程下所有文字流的日期、时间、来源、事件级别、内容等信息,还有统计得出的过程持续时间、出现错误数量等内容,方便程序员进行定位、查询和搜索,有利于提高发现系统存在问题的效率。
本实施例提供的按流程对日志文件进行分析的方法,可以在按流程分析模块中实现,定义了两类流程关键词:一级关键词和二级关键词。一级关键词为标志进出重要流程的关键字,例如机械手的取片放片。二级关键词指重 要流程中的子流程,例如进PM之前的抽气开阀动作。本分析系统从日志中按行提取,分析出一级、二级关键词,再归类显示出来。可以针对多线程、多硬件(或多用户)并行输出的日志进行智能分析,将日志文件按流程进行分门别类地显示,大大增加了日志文件的可阅读性和查找效率。并且图3所示的“分析”选项卡界面中中用户能够自由选择级别查看事件,并且统计了本段流程的运行时间和各类错误的出现数量,提高了日志文件的可阅读性和查找效率。
实施例四:
在上述实施例的基础上,本实施例继续说明日志文件的分析方法,具体说明按流程对日志文件进行分析。
参照图6,示出了根据本发明一个实施例的一种按对象对日志文件进行分析的方法实施例的步骤流程图,具体可以包括如下步骤:
步骤601,创建对象列表。
本实施例中步骤601与前述步骤201相对应,可以参见前述实施例中的说明。本实施例创建对象列表,即创建要显示在如图4所示界面左侧的对象列表,从每行日志中可以检索到对象名称关键词:LB、ProcessChamber、PressureController、GaugeSource等等,这些都是在系统中运行的对象。读取到了它们,在与对象数据库对比后,加入到显示的对象列表,然后把对应的日志内容都归类到所属的硬件对象下。全部日志文件的文字流读取完,那么每个对象所属的日志内容也就分析完毕了。在图4所示的日志文件分析系统“对象”选项卡点击后在左侧选择某个对象,属于它的日志内容就会显示出来。
步骤602,从日志文件开头提取一行新的文字流。
需要说明的是,本实施例是为了清楚描述按对象对日志文件进行分析的方法,因此将前述实施例中有关流程分析方法的部分提取出来进行说明,对于流程分析方法与对象分析方法相同的部分,例如先建立数据库,本实施例在此不做赘述,可以参照前述实施例中的相关内容进行理解。步骤602与前述实施例中的步骤202中从所述日志文件中依次按行提取待分析的文字流一 致,可以参照对应内容进行理解。
步骤603,从文字流中查找与对象列表对应的对象名。
当从文字流中查找到与对象列表对应的对象名时,执行步骤604;当从文字流中未查找到与对象列表对应的对象名时,执行步骤605。需要说明的是,本实施例中的对象列表对应前述实施例中的数据库,对象名对应前述实施例中的对象关键词,可以参见前述实施例的相关描述进行理解,本实施例在此不做赘述。
步骤604,当从文字流中查找到与对象列表对应的对象名时,将该行文字流添加到相应对象所属日志。
本实施例中步骤604与前述实施例中步骤204中“根据匹配结果,将所述文字流归类到其对应的对象关键词所属的对象中”相对应,即当匹配成功时,将所述文字流归类到其对应的对象关键词所属的对象中,可以参见相关内容进行理解,本实施例在此不做赘述。
步骤605,当从文字流中未查找到与对象列表对应的对象名时,创建新对象并添加到对象列表。
本实施例中步骤605与前述实施例中步骤204中“根据匹配结果,将所述文字流归类到其对应的对象关键词所属的对象中”相对应,即当匹配失败时,将所述文字流归类到所述新对象中,可以参见相关内容进行理解,本实施例在此不做赘述。
步骤606,判断日志文件是否遍历结束。当日志文件遍历结束时,执行步骤607显示对象列表与对象所属动作详细列表,当日志文件未遍历结束时,返回步骤602从日志文件开头提取一行新的文字流。
步骤607,显示对象列表与对象所属动作详细列表。
如图4所示,界面左侧对象选项卡下的内容为对象列表,点击对象列表中的一个对象,相应出现在界面右侧部分的内容即为对象所属动作详细列表,对象所属动作详细列表包括该流程下所有文字流的日期、时间、来源、事件级别、内容等信息,可以依据硬件对象直接进行定位,提高了日志文件的搜索和分析效率,有利于程序员快速定位系统中的问题,节省了大量人力 物力和时间。
本实施例提供的按对象对日志文件进行分析的方法,可以在按对象分析模块中实现,会根据实际硬件情况创建一个对象列表,然后按行分析日志文件,属于哪个对象即归类到那个对象所属的内容中,可以依据硬件对象直接进行定位,提高了日志文件的搜索和分析效率,有利于程序员快速定位系统中的问题,节省了大量人力物力和时间。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
实施例五:
在上述实施例的基础上,本实施例还公开了一种日志文件的分析系统。
参照图7,示出了根据本发明一个实施例的一种日志文件的分析系统实施例的结构框图,具体可以包括:数据库建立模块701、提取模块702、匹配模块703、归类模块704和存储模块705,其中,
数据库建立模块701,用于建立数据库,所述数据库包括流程关键词和/或对象关键词。
提取模块702,用于接收待分析的日志文件,从所述日志文件中依次按行提取待分析的文字流。
匹配模块703,用于将所述文字流与所述数据库中的流程关键词或对象关键词进行匹配。
归类模块704,用于根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程或对象关键词所属的对象中。
存储模块705,用于将所述文字流按照其所属的流程或对象分类存储。
本实施例通过首先通过数据库建立模块701建立数据库,所述数据库包括流程关键词和/或对象关键词;其次提取模块702接收待分析的日志文件, 从所述日志文件中依次按行提取待分析的文字流;再次匹配模块703将所述文字流与所述数据库中的流程关键词或对象关键词进行匹配;复次归类模块704根据匹配结果,将所述文字流归类到其对应的流程关键词所属的流程或对象关键词所属的对象中;最后存储模块705将所述文字流按照其所属的流程或对象分类存储,实现了对日志文件的智能分析,能够智能地分解多线程日志的繁杂内容,将日志文件按系统动作分割为若干流程或对象,将所述文字流按照其所属的流程或对象分类存储,大大增加了日志文件的可阅读性和查找效率,方便程序员进行阅读、搜索。
在本发明如图8所示的可选实施例中,所述日志文件的分析系统还包括:判断显示模块706,用于所述存储模块将所述文字流按照其所属的流程或对象分类存储之后,判断所述日志文件中是否包含待分析的文字流;当所述日志文件中包含待分析的文字流时,返回所述提取模块从所述日志文件中依次按行提取待分析的文字流;当所述日志文件中未包含待分析的文字流时,以所述流程或对象为单位显示所述日志文件,并结束对所述日志文件的分析。
在本发明的一种可选实施例中,所述流程关键词包括一级关键词和二级关键词,所述一级关键词标志流程开始或结束,所述二级关键词标志所述一级关键词所属流程中的子流程;所述匹配模块包括流程匹配子模块;所述流程匹配子模块,用于从所述文字流中查找与数据库对应的所述一级关键词;当从所述文字流中查找到与数据库对应的一级关键词时,匹配成功,标记该一级关键词;当从所述文字流中未查找到与数据库对应的一级关键词时,从所述文字流中查找与数据库对应的所述二级关键词;当从所述文字流中查找到与数据库对应的二级关键词时,匹配成功,标记该二级关键词。
在本发明的一种可选实施例中,所述归类模块包括流程归类子模块;所述流程归类子模块用于当所述文字流中标记有一级关键词时,将所述文字流归类到所述一级关键词标志的流程中;当所述文字流中未标记有一级关键词但标记有二级关键词时,将所述文字流归类到所述二级关键词标志的子流程所对应的流程中。
在本发明的一种可选实施例中,所述存储模块包括流程存储子模块;所 述流程存储子模块,用于将所述文字流所属的流程存储为流程列表;将所述文字流存储为所述流程列表中对应的流程信息。
在本发明的一种可选实施例中,所述匹配模块包括对象匹配子模块;所述对象匹配子模块,用于从所述文字流中查找与数据库对应的所述对象关键词;当从所述文字流中查找到与数据库对应的对象关键词时,匹配成功;当从所述文字流中未查找到与数据库对应的对象关键词时,匹配失败,根据所述文字流创建新对象并添加到所述数据库中。
在本发明的一种可选实施例中,所述归类模块包括对象归类子模块;所述对象归类子模块,用于当匹配成功时,将所述文字流归类到其对应的对象关键词所属的对象中;当匹配失败时,将所述文字流归类到所述新对象中。
在本发明的一种可选实施例中,所述存储模块包括对象存储子模块;所述对象存储子模块,用于将所述文字流所属的对象存储为对象列表;将所述文字流存储为所述对象列表中对应的对象信息。
在本发明如图9所示的一种可选实施例中,所述日志文件的分析系统还包括:统计模块707,用于统计所述文字流的运行时间、事件个数和对应的事件级别;将同一流程下各文字流的运行时间相加,和作为该流程的持续时间;根据同一流程下各文字流的事件个数和对应的事件级别,统计得到该流程的错误数量。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连 接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种日志文件的分析方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。