一种降低日志文件空间占用的方法、存储介质及终端技术

技术编号:32590460 阅读:11 留言:0更新日期:2022-03-09 17:24
本发明专利技术公开了一种降低日志文件空间占用的方法、存储介质及终端,涉及计算机技术领域。其中方法包括:构建索引表以及数据查找结构;计算日志语句中每一字符串的CRC编码,并添加至数据查找结构;将字符串添加至索引表,将日志语句中的目标字符串替换为索引表中对应位置的索引值。与打点日志法相比,本发明专利技术不需要每次更新源代码之后立即同步更新索引表,在节约大量时间成本的同时,还天然保证了日志文件和索引表的版本一致性,可靠性更高;本发明专利技术方法具备写入字符串类型参数的能力,扩展性和灵活性更强;与压缩日志法相比,本发明专利技术方法的时间复杂度和空间复杂度更低,更加节约处理器算力。力。力。

【技术实现步骤摘要】
一种降低日志文件空间占用的方法、存储介质及终端


[0001]本专利技术涉及计算机
,具体而言,涉及一种降低日志文件空间占用的方法、存储介质及终端。

技术介绍

[0002]日志功能对于服务器、通信基站、工业网关和路由器等需要长时间持续运行的设备来讲是一项必备的基础功能,完善的日志功能可以非常有效地帮助运维人员排查定位设备的问题。然而,由于设备的长时间持续运行,必将会产生大量的日志数据,这些日志文件将造成相当大的空间占用。与此同时,无论是硬盘存储器还是闪存,其价格都与存储容量呈正相关,庞大的日志数据文件给设备的生产和运维带来了巨大的成本负担。
[0003]容易想到的是,为解决以上提及的问题,我们可以将每一条日志语句映射为一个索引值,在存储日志语句的时候仅需要存储日志语句相对应的索引值和参数即可,也就是通信行业较为常用的打点日志法。其运行逻辑的流程图如图2所示。
[0004]然而,打点日志法存在两个问题,一个是打点日志必须在每次更新源代码之后,使用独立的索引表生成器将整个工程的源代码扫描一遍,并提取源代码中存在的所有日志语句,为每一条日志语句生成一个全局唯一的索引值,最终形成索引表文件。对于规模较大的软件工程而言,以上的过程是相当耗时的。而且,一旦在源代码更新之后没有立即更新索引表,将造成源代码和索引表的版本不一致,这将会使得最终生成的日志文件无法正常解析和显示。二是打点日志没有写入字符串类型参数的能力,这将严重限制日志功能的扩展性和灵活性。
[0005]而另一种在互联网领域常用的降低日志文件空间占用的方法是压缩日志法,如图3所示,也就是在写入日志语句到文件之前对日志数据进行压缩,这可以非常有效地降低日志文件空间占用。但是,压缩日志数据的算法较为复杂,对于处理器算力的消耗通常也是比较大的。然而,我们并不希望在降低日志文件空间占用的同时,消耗掉太多的处理器算力,毕竟处理器算力才是整台设备当中最宝贵的资源。

技术实现思路

[0006]本专利技术在于提供一种降低日志文件空间占用的方法、存储介质及终端,其克服了现有的打点日志法和压缩日志法所存在的上述问题,既可以显著降低日志文件空间占用,又非常节约处理器算力。
[0007]为了解决上述的问题,本专利技术采取的技术方案如下:第一方面,本专利技术提供了一种降低日志文件空间占用的方法,包括以下步骤:S1、构建数据查找结构以及索引表;S2、基于数据查找结构和索引表处理日志语句;S3、保存处理后的日志语句;所述步骤S2包括以下步骤:
S21、判断日志语句是否存在字符串,若存在,则继续执行步骤S22,若不存在,则日志语句处理过程结束;S22、提取日志语句中的字符串作为目标字符串;S23、计算目标字符串的CRC编码;S24、判断数据查找结构中是否存在目标字符串的CRC编码,若存在,则跳转至步骤S27,若不存在,则继续执行步骤S25;S25、将目标字符串的CRC编码添加至数据查找结构;S26、将目标字符串添加到索引表;S27、将日志语句中的目标字符串替换为索引表中对应位置的索引值,跳转至步骤S21。
[0008]本方案在每写一条日志语句时,提取出日志语句中所有的字符串,并将字符串映射为全局唯一的索引值。当把日志语句中的所有字符串都替换为相应的索引值之后,再将日志语句写入日志文件当中,能显著降低日志文件空间占用。对日志语句中的字符串计算CRC编码值,相当于是在计算字符串的“数字指纹”。使用CRC编码,对于处理器算力的需求相对较小,可以更加快速地计算出字符串的数字指纹。在实际的工程实施过程中,使用MD5或HASH等计算数字指纹的算法同样也是可以的,但是计算速度稍低。
[0009]在实际的工程实施当中,数据查找结构可采用红黑树、哈希表、排序树和有序数组等可以实现快速搜索的数据结构。也就是说,本专利技术使用任何一种可以实现快速搜索的数据结构,均落入本专利的保护范围。
[0010]在本专利技术的一较佳实施方式中,若采用32位处理器实现所述方法,则采用CRC

32算法计算字符串的CRC编码,若采用64位处理器实现所述方法,则采用CRC

64算法计算字符串的CRC编码。
[0011]本方案可使CRC编码的位宽与处理器寄存器位宽相等,可以尽可能地节约处理器算力,同时也由于CRC编码位宽较大,可以最大程度地避免CRC编码值冲突问题。
[0012]在本专利技术的一较佳实施方式中,所述数据查找结构为红黑树,所述CRC编码作为红黑树的键值。
[0013]本方案使用CRC编码值来作为红黑树的键值来创建红黑树,是因为红黑树的时间复杂度和空间复杂度均较低,具有非常高的实用价值。
[0014]第二方面,本专利技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有程序指令,所述程序指令被处理器执行时实现上述的方法。
[0015]第三方面,本专利技术提供一种终端,包括处理器及存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据;所述处理器用于执行上述方法。
[0016]与现有技术相比,本专利技术的有益效果是:1)与打点日志法相比,本专利技术不需要每次更新源代码之后立即同步更新索引表,在节约大量时间成本的同时,还天然保证了日志文件和索引表的版本一致性,可靠性更高;2)打点日志法没有写入字符串类型参数的能力,而本专利技术具备此能力,扩展性和灵活性更强;3)与压缩日志法相比,本专利技术方法的时间复杂度和空间复杂度更低,更加节约处理器算力。
[0017]为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举本专利技术实施例,并配合所附附图,作详细说明如下。
附图说明
[0018]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0019]图1是本专利技术所述降低日志文件空间占用的方法流程示意图;图2是现有技术中的打点日志流程图;图3是现有技术中的压缩日志流程图;图4、5、6、7为本专利技术实施例中的写入字符串时的索引表。
具体实施方式
[0020]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。
[0021]因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
实施例
[0022]请参照图1,本专利技术实施例提供了一种降低日志文件空间占用的方法。
[0023]在本实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种降低日志文件空间占用的方法,其特征在于,包括以下步骤:S1、构建数据查找结构以及索引表;S2、基于数据查找结构和索引表处理日志语句;S3、保存处理后的日志语句;所述步骤S2包括以下步骤:S21、判断日志语句是否存在字符串,若存在,则继续执行步骤S22,若不存在,则日志语句处理过程结束;S22、提取日志语句中的字符串作为目标字符串;S23、计算目标字符串的CRC编码;S24、判断数据查找结构中是否存在目标字符串的CRC编码,若存在,则跳转至步骤S27,若不存在,则继续执行步骤S25;S25、将目标字符串的CRC编码添加至数据查找结构;S26、将目标字符串添加到索引表;S27、将日志语句中的目标字符串替换为索引表中对应位置的索引值,跳转至步骤S21。2.根据权利要求1所述的方法,其特征在于,若采用32...

【专利技术属性】
技术研发人员:胡建伟
申请(专利权)人:四川创智联恒科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1