一种日志解析方法及装置的制作方法

文档序号:6423600阅读:205来源:国知局
专利名称:一种日志解析方法及装置的制作方法
技术领域
本申请涉及日志技术,特别是涉及一种日志解析方法及装置。
背景技术
日志是指有关计算机系统发生的事务或操作的记录。在各种应用系统,如银行系统、门户网站系统、电子商务系统、公司内部的财务系统等等应用系统中,都会将系统运行过程中所发生的一切记录为日志,并生成日志文件,然后通过对日志文件的解析,就可以详细了解系统的整个运行过程。以电子商务领域,尤其是大型电子商务系统为例,通常涉及到很多种业务,如网上贸易、广告、即时通讯、会员管理等等,每种业务都开发出一套或多套应用系统来支撑该业务的运行。如前所述,各个应用系统都会生成自己的日志文件,但由于每种日志文件与相应 的业务密切相关,因此每种日志文件的格式也不尽相同。针对不同格式的日志文件,目前本领域技术人员常采用的日志解析方法是对每种日志格式分别建立一套日志解析系统,即将日志解析与日志格式绑定。这样,就可以更有针对性地对不同格式的日志文件进行解析。但是,随着业务需求的多样化,日志格式也会随业务的变动而不断地变化和完善,会基于某种需求而增加新的信息,这就给日志的解析带来很多问题。例如,一旦日志格式修改,就需要修改相应的日志解析系统的代码,但各种业务都是不断变化发展的,因此相应的日志解析系统都需要进行经常性地代码修改和维护,这就给维护工作带来很大的负担。而且,这种“来一个,做一个”的策略,会带来代码重复率高,后期维护成本高的双高特点。

发明内容
本申请提供了一种日志解析方法及装置,以解决现有技术将日志解析与日志格式绑定的问题。为了解决上述问题,本申请公开了一种日志解析方法,包括输入原始日志;按照日志解码配置表中设置的字段分解顺序及各字段所对应的分解策略,对所述原始日志进行字段分解,分解后得到各字段的内容;将所述各字段的内容作为日志解析结果输出。优选的,对所述原始日志进行字段分解之后,还包括按照日志解码配置表中设置的各字段所对应的转换策略,对分解后得到的各字段的内容分别进行格式转换;所述输出为将格式转换后的各字段的内容作为日志解析结果输出。优选的,对所述原始日志进行字段分解之后,还包括按照日志过滤配置表中设置的各字段所对应的过滤条件,对符合过滤条件的日志解析结果进行过滤;所述输出为将过滤后的日志解析结果输出。优选的,当一条日志解析结果同时符合多个过滤条件时,按照过滤条件的优先级从高到低进行过滤。优选的,所述输出包括按照日志输出配置表中设置的输出格式进行输出。优选的,所述分解策略包括按照设定的字符长度对某字段进行分解;和/或,按照设定的分隔符对某字段进行分解;和/或,忽略字符串内容直到指定符号,然后提取该指定符号后的内容直到另一指定符号,所述两个指定符号之间的内容为某字段的内容;和/或,通过对某字段的内容进行再次分解得到其他字段的内容。优选的,所述方法还包括重新设置日志解码配置表;输入不同格式的原始日志;按照所述日志解码配置表中重新设置的字段分解顺序及各字段所对应的分解策略,对所述不同格式的原始日志进行字段分解,分解后得到各字段的内容;将所述各字段的内容作为日志解析结果输出。本申请还提供了一种日志解析装置,包括
日志输入模块,用于输入原始日志;日志解码模块,包括字段分解子模块,所述字段分解子模块用于按照日志解码配置表中设置的字段分解顺序及各字段所对应的分解策略,对所述原始日志进行字段分解,分解后得到各字段的内容;日志输出模块,用于将所述各字段的内容作为日志解析结果输出。 优选的,所述日志解码模块还包括格式转换子模块,用于对所述原始日志进行字段分解之后,按照日志解码配置表中设置的各字段所对应的转换策略,对分解后得到的各字段的内容分别进行格式转换;所述日志输出模块将格式转换后的各字段的内容作为日志解析结果输出。优选的,所述装置还包括日志过滤模块,用于对所述原始日志进行字段分解之后,按照日志过滤配置表中设置的各字段所对应的过滤条件,对符合过滤条件的日志解析结果进行过滤;所述日志输出模块将过滤后的日志解析结果输出。优选的,所述日志输出模块按照日志输出配置表中设置的输出格式进行输出。与现有技术相比,本申请包括以下优点首先,本申请实现了日志解析中的字段解码可配置,即针对不同的日志格式,都可以通过设置日志解码配置表来灵活满足各种日志解析的需求。其次,本申请还实现了日志解析中的过滤规则(即过滤条件)可配置,即通过日志过滤配置表来实现无效日志的拦截。过滤规则可采用虚拟机进行规则计算,做到灵活配置、闻效运算。再次,本申请还实现了输出内容可配置,即通过设置日志输出配置表来实现不同日志格式的日志输出,可以选择性地输出需要输出的字段。综上,本申请提供的可配置方式具有较高的灵活性,一旦日志格式发生变化、过滤规则变化、输出内容变化,都可通过重新设置各配置表来满足解析需求,而无需修改代码,因此大大降低了技术人员的工作量,还避免了多套代码存在的代码重复率高的问题,最大程度上减少了代码开发量,缩短了开发上线周期。而且,这种可配置的方式可以设置更加复杂的字段解析、过滤和输出规则,适用于随业务的变化越来越复杂的日志解析。并且,本申请还支持单机或分布式计算环境,可以很好地支持系统的可扩展性。当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。


图I是本申请实施例所述一种日志解析方法的流程图;图2是本申请实施例所述一种日志解析装置的结构图;图3是本申请实施例所述日志解析装置采用分布式结构的解析流程图。
具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本申请作进一步详细的说明。为了支持不同业务需求、不同日志格式的日志解析,现有技术将日志解析与日志 格式进行了绑定,这种绑定的方式存在诸多问题。为了解决现有技术存在的这些问题,可以从以下两个角度进行改进一个角度是统一日志格式,另一个角度是统一日志解析方式。对于统一日志格式的解决方法,结合具体的应用场景,经分析认为是不可行的。因为在实际应用中,例如在电子商务领域,涉及到很多种业务,每种业务都开发出一套或多套应用系统来支撑该业务的运行,如果将各业务的应用系统都统一日志格式,即使统一的初期可以非常方便地进行日志的统一解析,但随着时间的推进各种业务都在演变,要保留这种统一的日志格式将花费大量的工作,实际意义并不大。因此,本申请从统一日志解析方式的角度对现有技术进行了改进,提出一种可灵活配置的日志解析方法,不同日志格式的需求差异均可通过配置来解决,在功能灵活性和性能稳定性上都优于现有技术。下面通过实施例对本申请所述方法的实现流程进行详细说明。参照图1,是本申请实施例所述一种日志解析方法的流程图。步骤101,输入原始日志;其中,所述原始日志即指未经解析的日志。步骤102,按照日志解码配置表中设置的字段分解顺序及各字段所对应的分解策略,对所述原始日志进行字段分解,分解后得到各字段的内容;其中,所述字段分解是指从原始日志中提取出不同字段的内容,或者也可以理解为,将原始日志按照字段分解为不同的部分,每一部分对应一个字段的内容。在解析之前,预先设置所述日志解码配置表。所述日志解码配置表可针对不同日志格式的解析进行不同的设置,设置的内容包括字段解码的顺序、每个字段的分解策略等。对某种格式的日志进行解析时,按照对应该日志格式的日志解码配置表,根据表中的字段解码顺序逐一解析出各字段的内容,其中在对每一个字段进行解码时,还需要按照表中设置的对应该字段的分解方法进行解码。步骤103,将所述各字段的内容作为日志解析结果输出。将原始日志分解为各字段后,就可以了解该日志的内容了。此外,如果步骤102中解码失败,则还可以将错误日志输出。基于上述日志解析流程,当使用同一套代码解析另一种不同格式的原始日志时,执行以下流程重新设置日志解码配置表;
输入不同格式的原始日志;按照所述日志解码配置表中重新设置的字段分解顺序及各字段所对应的分解策略,对所述不同格式的原始日志进行字段分解,分解后得到各字段的内容;将所述各字段的内容作为日志解析结果输出。由上可知,对于不同日志格式的日志解析,使用一套代码通过配置的方式即可解决,无需修改代码,因此大大降低了技术人员的工作量,还避免了多套代码存在的代码重复率高的问题。 基于上述图I所示的实施例,在另一优选实施例中,还可以包括以下处理在步骤102对所述原始日志进行字段分解之后,还可以按照日志解码配置表中设置的各字段所对应的转换策略,对分解后得到的各字段的内容分别进行格式转换。相应的,步骤103中所述的输出为将格式转换后的各字段的内容作为日志解析结果输出。上述格式转换的目的是为了将解析后直接从原始日志中截取出来的数据转换为符合输出要求的格式,因为在某些情况下直接截取的数据格式可能并不符合用户的输出要求。基于上述图I所示的实施例,在另一优选实施例中,还可以包括以下处理在步骤102对所述原始日志进行字段分解之后,还可以按照日志过滤配置表中设置的各字段所对应的过滤条件(也称为过滤规则),对符合过滤条件的日志解析结果进行过滤。相应的,步骤103中所述的输出为将过滤后的日志解析结果输出。日志解码配置表中设置的字段都可以在日志过滤配置表中作为参数设置相应的过滤规则。对于一条日志,通常无需对该日志中的所有字段都进行过滤,而是设置过滤其中的某些字段即可。但是当一条日志解析结果同时符合多个过滤条件时,还可以按照过滤条件的优先级从高到低进行过滤。这种过滤方式带来以下优点首先,在实际应用中,每种业务输出都会有自身的信息熵在里面,日志解析的目的就是将这些信息熵通过规整后输出,并过滤不必要的信息。有一些业务需要过滤内部访问,有一些业务需要过滤爬虫访问,有一些业务需要过滤测试的数据等等。上述对日志解析结果的过滤就是为了满足这种实际应用的需要。其次,上述日志过滤配置表的使用表明过滤的规则也是可配置的,进一步增加了日志解析的灵活性。需要说明的是,上述的日志过滤可以在日志解码后并进行格式转换之后再进行。当然,上述两个优选实施例也可以单独与图I所示的实施例结合使用。进一步优选的,上述日志解析结果的输出也可以进行配置,即按照日志输出配置表中设置的输出格式进行输出。这种输出的可定制可以使输出结果更符合用户的需求。综上所述,这种可配置的方式可以设置更加复杂的字段解析、过滤和输出规则,适用于随业务的变化越来越复杂的日志解析。并且,还可以支持单机或分布式的计算环境。为了使本领域技术人员更好地了解本申请的内容,下面通过一个具体的例子详细说明一个优选的日志解析过程。以某一网站发送邮件日志为例,逐步解析每一个步骤的功能实现。原始日志样例如下
权利要求
1.一种日志解析方法,其特征在于,包括 输入原始日志; 按照日志解码配置表中设置的字段分解顺序及各字段所对应的分解策略,对所述原始日志进行字段分解,分解后得到各字段的内容; 将所述各字段的内容作为日志解析结果输出。
2.根据权利要求I所述的方法,其特征在于,对所述原始日志进行字段分解之后,还包括 按照日志解码配置表中设置的各字段所对应的转换策略,对分解后得到的各字段的内容分别进行格式转换; 所述输出为将格式转换后的各字段的内容作为日志解析结果输出。
3.根据权利要求I所述的方法,其特征在于,对所述原始日志进行字段分解之后,还包括 按照日志过滤配置表中设置的各字段所对应的过滤条件,对符合过滤条件的日志解析结果进行过滤; 所述输出为将过滤后的日志解析结果输出。
4.根据权利要求3所述的方法,其特征在于 当一条日志解析结果同时符合多个过滤条件时,按照过滤条件的优先级从高到低进行过滤。
5.根据权利要求I至4任一所述的方法,其特征在于,所述输出包括 按照日志输出配置表中设置的输出格式进行输出。
6.根据权利要求I所述的方法,其特征在于,所述分解策略包括 按照设定的字符长度对某字段进行分解; 和/或,按照设定的分隔符对某字段进行分解; 和/或,忽略字符串内容直到指定符号,然后提取该指定符号后的内容直到另一指定符号,所述两个指定符号之间的内容为某字段的内容; 和/或,通过对某字段的内容进行再次分解得到其他字段的内容。
7.根据权利要求I所述的方法,其特征在于,还包括 重新设置日志解码配置表; 输入不同格式的原始日志; 按照所述日志解码配置表中重新设置的字段分解顺序及各字段所对应的分解策略,对所述不同格式的原始日志进行字段分解,分解后得到各字段的内容; 将所述各字段的内容作为日志解析结果输出。
8.—种日志解析装置,其特征在于,包括 日志输入模块,用于输入原始日志; 日志解码模块,包括字段分解子模块,所述字段分解子模块用于按照日志解码配置表中设置的字段分解顺序及各字段所对应的分解策略,对所述原始日志进行字段分解,分解后得到各字段的内容; 日志输出模块,用于将所述各字段的内容作为日志解析结果输出。
9.根据权利要求8所述的装置,其特征在于,所述日志解码模块还包括格式转换子模块,用于对所述原始日志进行字段分解之后,按照日志解码配置表中设置的各字段所对应的转换策略,对分解后得到的各字段的内容分别进行格式转换; 所述日志输出模块将格式转换后的各字段的内容作为日志解析结果输出。
10.根据权利要求8所述的装置,其特征在于,还包括 日志过滤模块,用于对所述原始日志进行字段分解之后,按照日志过滤配置表中设置的各字段所对应的过滤条件,对符合过滤条件的日志解析结果进行过滤; 所述日志输出模块将过滤后的日志解析结果输出。
11.根据权利要求8至10任一所述的装置,其特征在于 所述日志输出模块按照日志输出配置表中设置的输出格式进行输出。
全文摘要
本发明提供了一种日志解析方法及装置,以解决现有技术将日志解析与日志格式绑定的问题。所述方法包括输入原始日志;按照日志解码配置表中设置的字段分解顺序及各字段所对应的分解策略,对所述原始日志进行字段分解,分解后得到各字段的内容;将所述各字段的内容作为日志解析结果输出。本发明提供的可配置方式具有较高的灵活性,一旦日志格式发生变化、过滤规则变化、输出内容变化,都可通过重新设置各配置表来满足解析需求,而无需修改代码,因此大大降低了技术人员的工作量,还避免了多套代码存在的代码重复率高的问题,最大程度上减少了代码开发量,缩短了开发上线周期。
文档编号G06F11/34GK102768636SQ20111011569
公开日2012年11月7日 申请日期2011年5月5日 优先权日2011年5月5日
发明者乔平, 许玉勤 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1