日志数据的处理方法及装置与流程

文档序号:13005019阅读:225来源:国知局
日志数据的处理方法及装置与流程

本发明涉及数据处理技术领域,尤其涉及一种日志数据的处理方法及装置。



背景技术:

日志数据是通信系统中定位问题的重要数据。例如:某移动用户投诉,他在三天前某地方信号不好,打电话总是掉线。我们不能让客户重新回到原来的地方再打一次电话,只能通过后台存储的日志数据对问题进行分析定位。同时,系统后台可存储的日志数据量,对问题分析定位来说同样很重要。例如:一个通信系统后台只能存储1000mbyte的日志数据,而每天会产生500mbyte的日志数据,那么,此系统最多只能存储两天的日志数据,对于三天前出现的问题就无法定位,进而导致无法解决用户所投诉的三天以前出现的问题。而且,由于通信系统要求具备高实时性,日志的处理性能对通信系统的影响是非常大的。

在实现本发明过程中发明人发明现有日志数据处理方法中至少存在以下问题:日志数据占用大量存储空间,进而影响系统性能;而且明文日志数据的打印也会导致泄密的风险。因此,如何提供一种能够安全、高效地存储更详细的日志数据,又不影响通信系统整体性能的日志数据处理方法具有重要意义。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的日志数据的处理方法及装置。

本发明的一个方面,提供了一种日志数据的处理方法,该方法包括:

获取每条日志信息的标识码和参数数据,所述日志信息包括格式化数据和参数数据,所述标识码为原始日志数据中的每条日志信息对应的唯一日志生成标识;

将各个日志信息的标识码、参数数据以及标识码与参数数据之间的对应关系生成日志文件,存储所述日志文件;

在进行日志解析时,获取与所述日志文件对应的格式文件,所述格式文件包括所述原始日志数据中的每条日志信息的标识码、格式化数据以及标识码与格式化数据之间的对应关系;

根据所述标识码对所述日志文件和所述格式文件进行解析,得到对应的日志信息。

其中,所述根据所述标识码对所述日志文件和所述格式文件进行解析,包括:

将所述日志文件和所述格式文件中具有相同标识码的参数数据和格式化数据按照指定规则进行组合。

其中,在所述获取每条日志信息的标识码和参数数据之前,还包括:

读取所述原始日志数据,对所述原始日志数据中的每条日志信息进行编号,将对应编号作为所述日志信息的标识码;

对所述原始日志数据进行解析,提取所述原始日志数据的每条日志信息中重复出现的格式化数据,将每条日志信息的格式化数据、标识码以及标识码与格式化数据之间的对应关系生成所述格式文件。

其中,所述读取所述原始日志数据,对所述原始日志数据中的每条日志信息进行编号,包括:

根据日志打印接口关键字从所述原始日志数据中读取日志信息,依次对读取的日志信息进行编号。

其中,在所述根据所述标识码对所述日志文件和所述格式文件进行解析之后,所述方法还包括:

将解析出的日志信息输出到指定文件。

本发明的另一个方面,提供了一种日志数据的处理装置,该装置包括日志存储单元和日志解析单元,所述日志存储单元包括提取模块和第一生成模块,所述日志解析单元包括获取模块和解析模块:

提取模块,用于提取每条日志信息的标识码和参数数据,所述日志信息包括格式化数据和参数数据,所述标识码为原始日志数据中的每条日志信息对应的唯一日志生成标识;

第一生成模块,用于将各个日志信息的标识码、参数数据以及标识码与参数数据之间的对应关系生成日志文件,存储所述日志文件;

获取模块,用于在进行日志解析时,获取与所述日志文件对应的格式文件,所述格式文件包括所述原始日志数据中的每条日志信息的标识码、格式化数据以及标识码与格式化数据之间的对应关系;

解析模块,用于根据所述标识码对所述日志文件和所述格式文件进行解析,得到对应的日志信息。

其中,所述解析模块,具体用于将所述日志文件和所述格式文件中具有相同标识码的参数数据和格式化数据按照指定规则进行组合,得到对应的日志信息。

其中,所述装置还包括日志预处理单元,所述日志预处理单元包括标识模块和第二生成模块:

标识模块,用于读取所述原始日志数据,对所述原始日志数据中的每条日志信息进行编号,将对应编号作为所述日志信息的标识码;

第二生成模块,用于对所述原始日志数据进行解析,提取所述原始日志数据的每条日志信息中重复出现的格式化数据,将每条日志信息的格式化数据、标识码以及标识码与格式化数据之间的对应关系生成所述格式文件。

此外,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法的步骤。

此外,本发明还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法的步骤。

本发明实施例提供的日志数据的处理方法及装置,针对现有日志数据处理方法中存在的问题,能够在不影响后期阅读的前提下,极大减少日志数据占用的存储空间,提升写日志的性能,降低由于明文日志打印而导致泄密的风险。本发明不仅安全、高效地存储更详细的日志数据,而且不会对通信系统的整体性能造成影响。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明实施例的一种日志数据的处理方法的流程图;

图2为本发明另一实施例的一种日志数据的处理方法的流程图;

图3为本发明另一实施例的一种日志数据的处理方法的具体实现流程;

图4为本发明实施例的一种日志数据的处理装置的结构示意图;

图5为本发明另一实施例的一种日志数据的处理装置的结构示意图;

图6为本发明实施例的计算机设备的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。

本发明的目的在于,在不影响后期日志阅读的前提下,减少日志数据占用的存储空间,提升写日志的性能,降低由于明文日志打印而泄密的风险,为实现本发明的所述目的,本发明实施例提供了一种日志数据的处理方法。

图1示意性示出了本发明一个实施例的日志数据的处理方法的流程图。参照图1,本发明实施例的日志数据的处理方法具体包括以下步骤:

s11、获取每条日志信息的标识码和参数数据,所述日志信息包括格式化数据和参数数据,所述标识码为原始日志数据中的每条日志信息对应的唯一日志生成标识。其中,所述标识码可以为编号、标识等具有标识作用的字符。

本实施例中的原始日志数据是指系统源代码,系统源代码中包括有各条日志信息,每条日志信息中包括有格式化数据和参数数据。其中,格式化数据具体为日志信息中的格式化字符串,参数数据具体为日志信息中可变参数的数据部分内容。本发明实施例中,源代码中的每条日志信息均具有一个唯一的日志生成标识码。

s12、将各个日志信息的标识码、参数数据以及标识码与参数数据之间的对应关系生成日志文件,存储所述日志文件。

本实施例中,系统运行过程进行日志打印时,本实施只保存日志的标识码与可变参数的数据部分内容,不需要对日志进行格式化,并且不需要保存格式化字符串。最后日志数据被保存为二进制的日志文件,如log_data.dat。

s13、在进行日志解析时,获取与所述日志文件对应的格式文件,所述格式文件包括所述原始日志数据中的每条日志信息的标识码、格式化数据以及标识码与格式化数据之间的对应关系。

本实施例中,预先将每条日志信息的标识码、格式化数据以及标识码与格式化数据之间的对应关系生成格式文件,并将其保存成文本文件,如log_describe.dat。在进行日志解析时,首先通过获取与日志文件对应的格式文件,以便后续根据该格式文件对日志文件进行解析还原。

s14、根据所述标识码对所述日志文件和所述格式文件进行解析,得到对应的日志信息。

其中,所述根据所述标识码对所述日志文件和所述格式文件进行解析,具体通过以下步骤实现:将所述日志文件和所述格式文件中具有相同标识码的参数数据和格式化数据按照指定规则进行组合。

本实施例中,通过对log_describe.dat和log_data.dat文件进行处理,进而把二进制的日志文件还原成可读的信息。

本发明实施例提供的日志数据的处理方法,针对现有日志数据处理方法中存在的问题,在进行日志打印时,获取每条日志信息的标识码和参数数据,将各个日志信息的标识码、参数数据以及标识码与参数数据之间的对应关系生成日志文件,存储日志文件;在进行日志解析时,获取与日志文件对应的格式文件,进而根据标识码对日志文件和格式文件进行解析,得到对应的日志信息,本发明实施例能够在不影响后期阅读的前提下,极大减少日志数据占用的存储空间,提升写日志的性能,降低由于明文日志打印而导致泄密的风险。

本发明不仅安全、高效地存储更详细的日志数据,而且不会对通信系统的整体性能造成影响。

在本发明的一个可选实施例中,在步骤s14中的根据所述标识码对所述日志文件和所述格式文件进行解析之后,所述方法还包括以下步骤:将解析出的日志信息输出到指定文件。

本发明实施例,通过将解析出的日志信息输出到指定文件,如log.txt。此时log.txt里面的内容即为通常可读的文本日志。

图2示意性示出了本发明另一个实施例的日志数据的处理方法的流程图。参照图2,本发明实施例的日志数据的处理方法,在步骤s11中的获取每条日志信息的标识码和参数数据之前,还包括以下步骤:

s01、读取所述原始日志数据,对所述原始日志数据中的每条日志信息进行编号,将对应编号作为所述日志信息的标识码。本实施例中的读取所述原始日志数据,对所述原始日志数据中的每条日志信息进行编号,具体通过以下步骤实现:根据日志打印接口关键字从所述原始日志数据中读取日志信息,依次对读取的日志信息进行编号。

s10、对所述原始日志数据进行解析,提取所述原始日志数据的每条日志信息中重复出现的格式化数据,将每条日志信息的格式化数据、标识码以及标识码与格式化数据之间的对应关系生成所述格式文件。

本实施例中的原始日志数据具体为系统源代码。本发明实施例通过扫描系统源代码,对源代码中的每条日志信息依次进行编码,使每条日志信息打印有一个唯一编号。然后通过扫描源代码,提取源代码中的每条日志信息的编号和格式化字符串,保存成文本文件。

下面通过一个具体实施例,对本发明技术方案的实现流程进行具体的说明,具体可参见图3。

假如系统源代码中有write_log(0xffffffff,“helloworld,%d\n”,2017)这么一行打印代码,首先对源代码进行扫描,根据日志打印接口关键字write_log,依次对每一条打印进行编号,且编号在系统源代码中唯一,如把上面举例的打印编码为write_log(0x10000001,“helloworld,%d\n”,2017),回写到源代码中。

对源代码进行扫描,根据日志打印接口关键字提取每一条打印的编号和格式化字符串,如举例中的0x10000001和“helloworld,%d\n”,并保存到log_describe.dat中。

在系统进行过程中,其他模块调用日志存储单元接口write_log进行写日志操作。

从write_log接口传进来的参数中取得日志唯一编号和参数数据,如举例中的0x10000001和2017。

按一定的格式把日志编号0x10000001和参数数据2017保存到二进制文件log_data.dat中。

从log_data.dat逐条读取日志数据,取得日志唯一编号以及对应的打印参数数据(如举例的0x10000001和2017)。

根据日志唯一编号从log_describe.dat文件中找到对应的格式化字符串(如举例的“helloworld,%d\n”)。

根据格式化字符串“helloworld,%d\n”,以及对应的参数数据2017,还原成文本内容“helloworld,2017”。

把还原出来的文本内容“helloworld,2017”输出到文件,如log.txt。此时log.txt里面的内容就和我们平时看的文本日志内容是一样的了。

与现有技术相比,本发明实施例提供的日志数据的处理方法具备如下有益效果:由于只保存日志编号和可变参数的数值,不保存占用空间较大的格式化字符串,因此极大减少日志数据占用的存储空间;由于不需要对日志进行格式化操作,因此提升写日志的性能;由于只保存日志编号和可变参数数值等二进制数据,如果没有经过日志解析系统解析,根本无法解读,因此降低由于明文日志打印而泄密的风险。

对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

图4示意性示出了本发明一个实施例的日志数据的处理装置的结构示意图。参照图4,本发明实施例的日志数据的处理装置包括日志存储单元10和日志解析单元20。

本实施例中,日志存储单元10进一步包括提取模块101和第一生成模块102,其中:提取模块101,用于提取每条日志信息的标识码和参数数据,所述日志信息包括格式化数据和参数数据,所述标识码为原始日志数据中的每条日志信息对应的唯一日志生成标识;第一生成模块102,用于将各个日志信息的标识码、参数数据以及标识码与参数数据之间的对应关系生成日志文件,存储所述日志文件;

本实施例中,日志解析单元20包括获取模块201和解析模块202,其中:获取模块201,用于在进行日志解析时,获取与所述日志文件对应的格式文件,所述格式文件包括所述原始日志数据中的每条日志信息的标识码、格式化数据以及标识码与格式化数据之间的对应关系;解析模块202,用于根据所述标识码对所述日志文件和所述格式文件进行解析,得到对应的日志信息。

在本发明的一个可选实施例中,所述解析模块202,具体用于将所述日志文件和所述格式文件中具有相同标识码的参数数据和格式化数据按照指定规则进行组合,得到对应的日志信息。

在本发明的一个可选实施例中,所述日志解析单元20还包括图中未示出的打印输出模块,该打印输出模块,用于在解析模块202根据所述标识码对所述日志文件和所述格式文件进行解析之后,将解析出的日志信息输出到指定文件。

图5示意性示出了本发明另一个实施例的日志数据的处理装置的结构示意图。参照图5,本发明实施例的日志数据的处理装置还包括日志预处理单元30,所述日志预处理单元30包括标识模块301和第二生成模块301,其中:标识模块301,用于读取所述原始日志数据,对所述原始日志数据中的每条日志信息进行编号,将对应编号作为所述日志信息的标识码;第二生成模块302,用于对所述原始日志数据进行解析,提取所述原始日志数据的每条日志信息中重复出现的格式化数据,将每条日志信息的格式化数据、标识码以及标识码与格式化数据之间的对应关系生成所述格式文件。

本实施例中,所述标识模块301具体用于读取所述原始日志数据,根据日志打印接口关键字从所述原始日志数据中读取日志信息,并依次对读取的日志信息进行编号。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

本发明实施例提供的日志数据的处理方法及装置,针对现有日志数据处理方法中存在的问题,能够在不影响后期阅读的前提下,极大减少日志数据占用的存储空间,提升写日志的性能,降低由于明文日志打印而导致泄密的风险。本发明不仅安全、高效地存储更详细的日志数据,而且不会对通信系统的整体性能造成影响。

此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法的步骤。

本实施例中,所述日志数据的处理装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

图6为本发明实施例提供的计算机设备的示意图。本发明实施例提供的计算机设备,包括存储器501、处理器502及存储在存储器501上并可在处理器502上运行的计算机程序,所述处理器502执行所述计算机程序时实现上述各个日志数据的处理方法实施例中的步骤,例如图1所示的s11、获取每条日志信息的标识码和参数数据,所述日志信息包括格式化数据和参数数据,所述标识码为原始日志数据中的每条日志信息对应的唯一日志生成标识;s12、将各个日志信息的标识码、参数数据以及标识码与参数数据之间的对应关系生成日志文件,存储所述日志文件;s13、在进行日志解析时,获取与所述日志文件对应的格式文件,所述格式文件包括所述原始日志数据中的每条日志信息的标识码、格式化数据以及标识码与格式化数据之间的对应关系;s14、根据所述标识码对所述日志文件和所述格式文件进行解析,得到对应的日志信息。或者,所述处理器502执行所述计算机程序时实现上述各日志数据的处理装置实施例中各模块/单元的功能,例如图4所示的提取模块101、第一生成模块102、获取模块201和解析模块202。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述日志数据的处理装置中的执行过程。例如,所述计算机程序可以被分割成提取模块101、第一生成模块102、获取模块201和解析模块202,各模块具体功能如下:提取模块101,用于提取每条日志信息的标识码和参数数据,所述日志信息包括格式化数据和参数数据,所述标识码为原始日志数据中的每条日志信息对应的唯一日志生成标识;第一生成模块102,用于将各个日志信息的标识码、参数数据以及标识码与参数数据之间的对应关系生成日志文件,存储所述日志文件;获取模块201,用于在进行日志解析时,获取与所述日志文件对应的格式文件,所述格式文件包括所述原始日志数据中的每条日志信息的标识码、格式化数据以及标识码与格式化数据之间的对应关系;解析模块202,用于根据所述标识码对所述日志文件和所述格式文件进行解析,得到对应的日志信息。

所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图6仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备还可以包括输入输出设备、网络接入设备、总线等。

所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1