本申请提供一种日志数据的存储方法及装置,包括:获取待存储的日志数据,并获取预先构建的初始链表的节点的类型属性,链表用于存储日志数据,若根据节点的类型属性确定初始链表中没有空闲的节点,则为初始链表构建新的节点,得到目标链表,根据新的节点将待存储的日志数据存储至目标链表中,通过基于链表对日志数据进行存储,且在初始链表的节点中没有空闲的节点时,构建新的节点,并基于新的节点对待存储的日志数据进行存储的特征,避免了采用固定内存对日志数据进行存储时,可能造成日志数据丢失的弊端,通过构建新的节点对日志数据进行存储,提高了日志数据存储的灵活性和多样性,且提高了日志数据存储的准确性和可靠性的技术效果。技术效果。技术效果。
【技术实现步骤摘要】
日志数据的存储方法及装置
[0001]本申请涉及通信技术,尤其涉及一种日志数据的存储方法及装置。
技术介绍
[0002]网络设备、系统及服务程序等,在运作时都会产生一个叫日志文件(log)的事件记录,每一行日志数据都记载着日期、时间、使用者及动作等相关操作的描述。随着信息量的增加,怎样对日志数据进行存储成了亟待解决的问题。
[0003]在现有技术中,通常采用的日志数据存储方法为:申请内存(buffer)或双内存对日志数据进行暂时存储,待存满日志数据时,将日志数据保存到文件。
[0004]然而,通过上述方法,若申请的内存相对较大,而日志数据相对较少,则可能造成内存资源的浪费,若申请的内存相对较小,而日志数据相对较多,则可能造成日志数据的丢失。
技术实现思路
[0005]本申请提供一种日志数据的存储方法及装置,用以解决上述技术问题中的至少一种。
[0006]第一方面,本申请提供一种日志数据的存储方法,包括:
[0007]获取待存储的日志数据,并获取预先构建的初始链表的节点的类型属性,其中,链表用于存储日志数据;
[0008]若根据所述节点的类型属性确定所述初始链表中没有空闲的节点,则为所述初始链表构建新的节点,得到目标链表;
[0009]根据所述新的节点将所述待存储的日志数据存储至所述目标链表中。
[0010]在一些实施例中,所述初始链表的存储空间是基于预设的第一内存确定的,所述新的节点的数量是基于所述第一内存和预设的第二内存确定的,所述第二内存大于所述第一内存。
[0011]在一些实施例中,根据所述新的节点将所述待存储的日志数据存储至所述目标链表中,包括:
[0012]将所述待存储的日志数据存储至所述新的节点,并将存储了所述待存储的日志数据的新的节点插入至预设的日志缓存链表尾,得到新的日志缓存链表;
[0013]将所述新的日志缓存链表挂接至所述目标链表中。
[0014]在一些实施例中,将所述新的日志缓存链表挂接至所述目标链表中,包括:
[0015]将所述新的日志缓存链表中存储了所述待存储的日志数据的新的节点,挂接至所述目标链表中。
[0016]在一些实施例中,还包括:
[0017]遍历所述目标链表,得到所述目标链表中的每一日志缓存链表;
[0018]根据预设的日志数据的分类信息,对各日志缓存链表进行分类处理,得到不同分
类下的日志缓存链表;
[0019]将每一分类下的日志缓存链表中的日志数据写入至所属分类对应的文件中。
[0020]在一些实施例中,还包括:
[0021]针对任一分类对应的文件,确定所述任一分类对应的文件的存储空间;
[0022]若所述任一分类对应的文件的存储空间大于预设的第一阈值,则对所述任一分类对应的文件进行压缩处理,得到压缩文件。
[0023]在一些实施例中,还包括:
[0024]确定所述压缩文件的存储空间;
[0025]若所述压缩文件的存储空间大于预设的第二阈值,则确定与所述任一分类为相同分类的历史文件,并从历史文件中删除时间最早的文件。
[0026]在一些实施例中,所述待存储的日志数据为多个,获取待存储的日志数据,包括:
[0027]基于接收线程接收由多个业务线程发送的多个待存储的日志数据,其中,一个所述业务线程发送至少一个待存储的日志数据;
[0028]根据每一待存储的日志数据的时间信息和线程信息,对每一待存储的日志数据进行封装处理,得到每一封装处理后的日志数据。
[0029]在一些实施例中,还包括:
[0030]根据预设的日志数据的分类信息,确定每一封装处理后的日志数据的类别属性;
[0031]根据预设的类别属性与存储等级之间的映射关系,对各封装处理后的日志数据进行过滤处理。
[0032]第二方面,本申请提供一种日志数据的存储装置,包括:
[0033]获取单元,用于获取待存储的日志数据,并获取预先构建的初始链表的节点的类型属性,其中,链表用于存储日志数据;
[0034]构建单元,用于若根据所述节点的类型属性确定所述初始链表中没有空闲的节点,则为所述初始链表构建新的节点,得到目标链表;
[0035]存储单元,用于根据所述新的节点将所述待存储的日志数据存储至所述目标链表中。
[0036]在一些实施例中,所述初始链表的存储空间是基于预设的第一内存确定的,所述新的节点的数量是基于所述第一内存和预设的第二内存确定的,所述第二内存大于所述第一内存。
[0037]在一些实施例中,所述存储单元,包括:
[0038]存储子单元,用于将所述待存储的日志数据存储至所述新的节点;
[0039]插入子单元,用于将存储了所述待存储的日志数据的新的节点插入至预设的日志缓存链表尾,得到新的日志缓存链表;
[0040]挂接子单元,用于将所述新的日志缓存链表挂接至所述目标链表中。
[0041]在一些实施例中,挂接子单元用于,将所述新的日志缓存链表中存储了所述待存储的日志数据的新的节点,挂接至所述目标链表中。
[0042]在一些实施例中,还包括:
[0043]遍历单元,用于遍历所述目标链表,得到所述目标链表中的每一日志缓存链表;
[0044]分类单元,用于根据预设的日志数据的分类信息,对各日志缓存链表进行分类处
理,得到不同分类下的日志缓存链表;
[0045]写入单元,用于将每一分类下的日志缓存链表中的日志数据写入至所属分类对应的文件中。
[0046]在一些实施例中,还包括:
[0047]第一确定单元,用于针对任一分类对应的文件,确定所述任一分类对应的文件的存储空间;
[0048]压缩单元,用于若所述任一分类对应的文件的存储空间大于预设的第一阈值,则对所述任一分类对应的文件进行压缩处理,得到压缩文件。
[0049]在一些实施例中,还包括:
[0050]第二确定单元,用于确定所述压缩文件的存储空间,并若所述压缩文件的存储空间大于预设的第二阈值,则确定与所述任一分类为相同分类的历史文件;
[0051]删除单元,用于从历史文件中删除时间最早的文件。
[0052]在一些实施例中,所述待存储的日志数据为多个,所述获取单元,包括:
[0053]接收子单元,用于基于接收线程接收由多个业务线程发送的多个待存储的日志数据,其中,一个所述业务线程发送至少一个待存储的日志数据;
[0054]封装子单元,用于根据每一待存储的日志数据的时间信息和线程信息,对每一待存储的日志数据进行封装处理,得到每一封装处理后的日志数据。
[0055]在一些实施例中,所述获取单元,还包括:
[0056]确定子单元,用于根据预设的日志数据的分类信息,确定每一封装处理后的日志数据的类别属性;
[0057]过滤子单元,用于根据预设的类别属性与存储等级之间本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种日志数据的存储方法,包括:获取待存储的日志数据,并获取预先构建的初始链表的节点的类型属性,其中,链表用于存储日志数据;若根据所述节点的类型属性确定所述初始链表中没有空闲的节点,则为所述初始链表构建新的节点,得到目标链表;根据所述新的节点将所述待存储的日志数据存储至所述目标链表中。2.根据权利要求1所述的方法,其中,所述初始链表的存储空间是基于预设的第一内存确定的,所述新的节点的数量是基于所述第一内存和预设的第二内存确定的,所述第二内存大于所述第一内存。3.根据权利要求1所述的方法,其中,根据所述新的节点将所述待存储的日志数据存储至所述目标链表中,包括:将所述待存储的日志数据存储至所述新的节点,并将存储了所述待存储的日志数据的新的节点插入至预设的日志缓存链表尾,得到新的日志缓存链表;将所述新的日志缓存链表挂接至所述目标链表中。4.根据权利要求3所述的方法,其中,将所述新的日志缓存链表挂接至所述目标链表中,包括:将所述新的日志缓存链表中存储了所述待存储的日志数据的新的节点,挂接至所述目标链表中。5.根据权利要求1至4中任一项所述的方法,还包括:遍历所述目标链表,得到所述目标链表中的每一日志缓存链表;根据预设的日志数据的分类信息,对各日志缓存链表进行分类处理,得到不同分类下的日志缓存链表;将每一分类下的日志缓存链表中的日志数据写入至所属分类对应的文件中。6.根据权利要求5所述的方法,还包括:针对任一分类对应的文件,确定所述任一分类对应的文件的存储空间;若所述任一分类对应的文件的存储空间大于预设的第一阈值,则对所述任一分类对应的文件进行压缩处理,得到压缩文件。7.根据权利要求6所述的方法,还包括:确...
【专利技术属性】
技术研发人员:吴永祥,
申请(专利权)人:成都鼎桥通信技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。