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

文档序号:17098621发布日期:2019-03-14 00:05阅读:225来源:国知局
日志的处理方法及装置与流程

本发明涉及一种日志的处理方法及装置。



背景技术:

日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。日志包括系统日志、应用程序日志和安全日志等。

因为输出日志需要占用大量磁盘空间、消耗磁盘读写资源,影响系统性能,而且大量的日志也影响后续的阅读分析,所以不能不限制日志信息输出量。本领域的通行做法与公开号为CN101753344A的专利中记载类似,将日志内容以文本形式存储到缓存中,集中写入文件,占用缓存较多,严重影响系统的速度。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中日志的写入、输出占用缓存空间较多,严重影响系统的运行速度的缺陷,提供一种节省记录日志时内存消耗,减少记录日志所需时间的日志的处理方法及装置。

本发明是通过下述技术方案来解决上述技术问题:一种日志的处理方法,其特点在于,所述处理方法用于处理一个任务的所有日志,对于所述所有日志中的一目标日志,所述处理方法包括:

在内存中设置一内存区域,在所述内存区域中将所述目标日志的每一语句中的参数分离出来,将所述参数按一配置信息记录于与所述目标日志匹配的数据集合内,并将所述目标日志的编号记录于所述数据集合内,分离参数后的语句按所述配置信息生成为与数据集合对应的日志模板,

在一用于存储日志的存储磁盘中存有所述日志模板的情况下,记录所述日志模板的编号于所述数据集合内,在所述所有日志全部处理完成后,将内存区域中的数据集合存储于存储磁盘内;

在一用于存储日志的存储磁盘中未存有所述日志模板的情况下,生成所述日志模板的编号并记录于所述数据集合内,在所述所有日志全部处理完成后,将内存区域中的数据集合以及对应的日志模板存储于存储磁盘内;

其中,所述配置信息为所述参数与语句中分离位置的映射关系。

在数据处理系统中,一个需要执行的任务通常具有多个需要记录的日志,每个日志中包括多个语句(可以为描述型语句),将每一语句中可变化的参数与固定不变的句式分别保存可以在存储空间上省略存储相同日志模板,达到节省存储空间的目的。进一步地,分离后的数据集合以及日志模板存储于磁盘空间中供输出时调用,节约内存(缓存)的空间,提高系统的使用性能。

较佳地,所述处理方法包括:

接收一输出目标日志的请求后,根据请求中的日志的编号获取数据集合;

将获取的数据集合中的参数按照所述配置信息写入对应的日志模板中以恢复成目标日志并输出。

根据日志的编号,系统可以获取请求的日志。一个日志中的数据集合与日志模板对应,数据集合中包括对应的日志模板的编号,根据所述编号系统可以获取与所述数据集合对应的日志模板,数据集合中的参数写入到日志模板中就能够还原出分离前的日志。

利用所述编号,如果磁盘中的日志模板已经存在,则系统不再需要将日志模板发送到存储磁盘中,只需要将数据集合发送到存储磁盘中,大大降低了传输的数据量。

较佳地,所述处理方法包括:数据集合在存储于存储磁盘前经过压缩处理,

对获取的数据集合进行解压处理,将解压后数据集合中的参数按照所述配置信息写入对应的日志模板中以恢复成目标日志并输出。

较佳地,所述内存用于设置多个所述内存区域,各个内存区域对应处理不同的任务的日志。

本发明还提供一种日志的处理装置,其特点在于,所述处理装置用于处理一个任务中的所有日志,所述处理装置包括一设置模块、一处理模块以及一存储模块,对于一个任务中的一目标日志,

所述设置模块用于在内存中设置一内存区域;

所述处理模块用于在所述内存区域中将所述目标日志的每一语句中的参数分离出来,将所述参数按一配置信息记录于与所述目标日志匹配的数据集合内,并将所述目标日志的编号记录于所述数据集合内,分离参数后的语句按所述配置信息生成为与数据集合对应的日志模板;

所述存储模块用于在一用于存储日志的存储磁盘中存有所述日志模板的情况下,记录所述日志模板的编号于所述数据集合内,在所述所有日志全部处理完成后,将内存区域中的数据集合存储于存储磁盘内;

所述存储模块还用于在一用于存储日志的存储磁盘中未存有所述日志模板的情况下,生成所述日志模板的编号并记录于所述数据集合内,在所述所有日志全部处理完成后,将内存区域中的数据集合以及对应的日志模板存储于存储磁盘内;

其中,所述配置信息为所述参数与语句中分离位置的映射关系。

较佳地,所述处理装置还包括一获取模块以及一恢复模块,

所述获取模块用于在接收一输出目标日志的请求后,根据请求中的日志的编号获取数据集合;

所述恢复模块用于将获取的数据集合中的参数按照所述配置信息写入对应的日志模板中以恢复成目标日志并输出。

较佳地,所述处理装置还包括一压缩模块,所述压缩模块用于在数据集合存储于存储磁盘前压缩所述数据集合,所述压缩模块还用于对获取的数据集合进行解压处理,然后调用所述恢复模块将解压后数据集合中的参数按照所述配置信息写入对应的日志模板中以恢复成目标日志并输出。

较佳地,所述内存设置多个所述内存区域,各个内存区域对应处理不同的任务的日志。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。

本发明的积极进步效果在于:本申请的处理方法及装置能够有效节省记录日志时的服务器内存消耗,减少记录日志以及日志存储所需时间。数据传输量大大减小,由于服务器不需要处理完整的日志,只需要处理日志模板序号,及模板所需的参数,因此少了内存使用,提高了系统的性能。

附图说明

图1为本发明实施例的处理方法的流程图。

图2为本发明实施例的处理装置的结构示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例

参见图2,本实施例提供一种日志的处理装置1,本实施例的处理装置用于处理两个任务中的日志,其中,每个任务中均包括3个日志,所述处理装置包括一设置模块11、一处理模块12、一存储模块13、一获取模块14、一恢复模块15以及一压缩模块16。

对于一个任务中的一目标日志:

所述设置模块用于在内存中设置一内存区域,所述任务中的3个日志均在内存区域中处理,所述内存区域仅处理一个任务的日志,另一个任务在另一个内存区域中处理。

所述处理模块用于在所述内存区域中将所述目标日志的每一语句中的参数分离出来,将所述参数按一配置信息记录于与所述目标日志匹配的数据集合内,并将所述目标日志的编号记录于所述数据集合内,分离参数后的语句按所述配置信息生成为与数据集合对应的日志模板。其中,所述配置信息为所述参数与语句中分离位置的映射关系。

用于在一用于存储日志的存储磁盘中存有所述日志模板的情况下,记录所述日志模板的编号于所述数据集合内,在所述所有日志全部处理完成后,将内存区域中的数据集合存储于存储磁盘内。

所述存储模块还用于在一用于存储日志的存储磁盘中未存有所述日志模板的情况下,生成所述日志模板的编号并记录于所述数据集合内,在所述所有日志全部处理完成后,将内存区域中的数据集合以及对应的日志模板存储于存储磁盘内。

所述获取模块用于在接收一输出目标日志的请求后,根据请求中的日志的编号获取数据集合。

所述压缩模块用于在数据集合存储于存储磁盘前压缩所述数据集合,所述压缩模块还用于对获取的数据集合进行解压处理,然后调用所述恢复模块将解压后数据集合中的参数按照所述配置信息写入对应的日志模板中以恢复成目标日志并输出。

所述内存设置多个所述内存区域,各个内存区域对应处理不同的任务的日志。

参见图1,利用上述处理装置,本实施例还提供一种日志的处理方法,所述处理方法处理的日志均设有编号,利用所述处理方法处理一个任务中的3个日志,对于其中的一个编号为19的目标日志,所述目标日志为:

向5号服务器发送了1024个字节;

向7号服务器发送了2048个字节。

对于上述目标日志,所述处理方法包括:

步骤100、在内存中设置一内存区域,在所述内存区域中将所述目标日志的每一语句中的参数分离出来,将所述参数按一配置信息记录于与所述目标日志匹配的数据集合内,并将所述目标日志的编号记录于所述数据集合内,分离参数后的语句按所述配置信息生成为与数据集合对应的日志模板,其中,所述配置信息为所述参数与语句中分离位置的映射关系。

也就是说,所述目标日志中的两个语句中,5、1024、7、2048均为需要分离的参数,将5、1024、7、2048按照所述配置信息记录于数据集合内,分离参数后的语句生成的日志模板为:

向{0}号服务器发送了{1}个字节;

向{0}号服务器发送了{1}个字节。

数据集合为:

19,1377;

5,1024;

7,2048;

上述的数据集合根据配置信息生成,使得数据集合的第一行表示目标日志的身份以及所对应的日志模板,第二行表示具体的参数,参数的行数与日志模板对应,即利用配置信息,所述参数能够与语句中分离位置相对应。

所述数据集合中还存有这个日志模板的编号1377,用于系统恢复所述目标日志。所述数据集合中存有日志编号19用于系统调用所述目标日志。

步骤101、判断在一用于存储日志的存储磁盘中是否存有所述日志模板,若是则执行步骤102,若否则执行步骤103。

步骤102、记录所述日志模板的编号于所述数据集合内,在所述所有日志全部处理完成后,将内存区域中的数据集合存储于存储磁盘内,然后执行步骤104。

步骤103、生成所述日志模板的编号并记录于所述数据集合内,在所述所有日志全部处理完成后,将内存区域中的数据集合以及对应的日志模板存储于存储磁盘内。

其中,数据集合在存储于存储磁盘前经过压缩处理,使得日志占用磁盘的空间更小。在所述存储磁盘中,如果编号为1377的日志模板已经存在,系统在判断出日志模板已存在的情况下可以仅将编号1377的日志模板对应的数据集合存储于存储磁盘内,而不再存储日志模板,从而降低数据的传输量以及存储磁盘的空间占用量。

步骤104、接收一输出目标日志的请求后,根据请求中的日志的编号获取数据集合。

步骤105、对获取的数据集合进行解压处理,将解压后数据集合中的参数按照所述配置信息写入对应的日志模板中以恢复成目标日志并输出。

在步骤104中,所述请求中要求输出编号为19的日志,系统根据编号19获取数据集合,并根据编号1377获取数据集合对应的日志模板,然后在一缓存内将数据集合中的5、1024、7、2048填入到日志模板中,还原出目标日志,并将所述目标日志输出。

本实施例的处理方法及装置能够有效节省记录日志时的服务器内存消耗,减少记录日志以及日志存储所需时间。数据传输量大大减小,由于服务器不需要处理完整的日志,只需要处理日志模板序号,及模板所需的参数,因此少了内存使用,提高了系统的性能。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

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