基于嵌入式设备的日志的存储方法、存储装置与处理器与流程

文档序号:30787203发布日期:2022-07-16 08:32阅读:577来源:国知局

1.本技术涉及日志的存储领域,具体而言,涉及一种基于嵌入式设备的日志的存储方法、存储装置、计算机可读存储介质、处理器与基于嵌入式设备的存储系统。


背景技术:

2.在嵌入式设备的运行过程中,需要产生各种日志文件,用于记录重要的操作或出现的异常,便于一段时间的事件统计或故障分析。但对于嵌入式环境存储空间有限,一种合理的日志文件的存储、分析方法显得尤为重要。
3.现有技术中,按照日志记录的类型,将嵌入式设备运行过程中的多个日志记录进行分类,分别存储至与日志记录的类型对应的日志文件中,这样可以便于对日志记录的分析,但是对于某一类型的日志记录,由于在嵌入式设备的运行过程中会产生较多的日志记录,这样会使得对应的日志文件较大,进而也会占据较多的嵌入式设备的存储空间。但是嵌入式设备的存储空间有限,无限制地存储日志记录的方法并不适用于嵌入式设备。
4.因此,亟需一种能够在节省存储空间的情况下,较为灵活地对嵌入式设备的日志记录进行存储的方法。
5.在背景技术部分中公开的以上信息只是用来加强对本文所描述技术的背景技术的理解,因此,背景技术中可能包含某些信息,这些信息对于本领域技术人员来说并未形成在本国已知的现有技术。


技术实现要素:

6.本技术的主要目的在于提供一种基于嵌入式设备的日志的存储方法、存储装置、计算机可读存储介质、处理器与基于嵌入式设备的存储系统,以解决现有技术中难以在节省存储空间的情况下,较为灵活地对嵌入式设备的日志记录进行存储的问题。
7.根据本发明实施例的一个方面,提供了一种基于嵌入式设备的日志的存储方法,包括:将运行在所述嵌入式设备上的软件按照功能进行划分,得到多个目标模块,所述软件为完成对应的业务功能的计算机指令和数据的集合;按照各所述目标模块在运行过程中日志记录产生的时间顺序,为所述日志记录分配对应的由小到大的序列号,且按照所述序列号由小到大的顺序将所述日志记录以及对应的所述序列号存储在目标日志文件中,所述目标日志文件为与所述目标模块对应的日志文件;在存储的过程中且在所述目标日志文件的可存容量不足存储下一个所述日志记录的情况下,将下一个所述日志记录以及对应的所述序列号覆盖所述目标日志文件中的当前的最小序列号对应的所述日志记录以及对应的所述序列号。
8.可选地,所述目标日志文件有多个的情况下,按照各所述目标模块在运行过程中日志记录产生的时间顺序,为所述日志记录分配对应的由小到大的序列号,且按照所述序列号由小到大的顺序将所述日志记录以及对应的所述序列号存储在目标日志文件中,包括:按照各所述目标模块在运行过程中产生的所述日志记录的重要程度进行划分,得到目
标日志类型,所述目标日志类型至少包括以下之一:异常类、错误类、告警类、通知类、调试类、提示类;根据所述目标日志类型以及所述日志记录产生的时间顺序,为所述日志记录分配对应的由小到大的序列号;按照所述序列号由小到大的顺序,将所述日志记录以及对应的所述序列号,存储在与所述目标日志类型对应的所述目标日志文件中,其中,一个所述目标日志类型对应一个所述目标日志文件。
9.可选地,根据所述目标日志类型以及所述日志记录产生的时间顺序,为所述日志记录分配对应的由小到大的序列号,包括:在同一个所述目标模块中,按照同一个所述目标日志类型中的所述日志记录产生的时间顺序,为所述日志记录分配对应的由小到大的序列号,直到达到最大序列号,所述最大序列号为计算机最大字长对应的序列号。
10.可选地,一个所述目标模块对应多个目标日志类型,一个所述目标模块对应一个模块索引文件,按照各所述目标模块在运行过程中日志记录产生的时间顺序,为所述日志记录分配对应的由小到大的序列号,且按照所述序列号由小到大的顺序将所述日志记录以及对应的所述序列号存储在目标日志文件中之后,所述存储方法还包括:按照同一个所述目标模块中,各所述目标日志类型对应的所述日志记录产生的时间顺序,为所述日志记录对应的所述目标日志类型分配由小到大的类型序列号;按照所述类型序列号由小到大的顺序,将所述目标日志类型的类型序列号以及对应的所述目标日志类型存储至所述模块索引文件中。
11.可选地,一个所述目标模块对应多个目标日志类型,一个所述目标日志类型对应一个类型索引文件,按照各所述目标模块在运行过程中日志记录产生的时间顺序,为所述日志记录分配对应的由小到大的序列号,且按照所述序列号由小到大的顺序将所述日志记录以及对应的所述序列号存储在目标日志文件中之后,所述存储方法还包括:按照同一个所述目标日志类型中,各所述目标模块对应的所述日志记录产生的时间顺序,为所述日志记录对应的所述目标模块分配由小到大的模块序列号;按照所述模块序列号由小到大的顺序,将所述目标模块的所述模块序列号以及对应的所述目标模块存储至所述类型索引文件中。
12.可选地,所述软件对应一个全局索引文件,一个所述目标模块对应多个目标日志类型,按照各所述目标模块在运行过程中日志记录产生的时间顺序,为所述日志记录分配对应的由小到大的序列号,且按照所述序列号由小到大的顺序将所述日志记录以及对应的所述序列号存储在目标日志文件中之后,所述存储方法还包括:按照所述软件中所述日志记录产生的时间顺序,为所述日志记录对应的所述目标模块和所述目标日志类型分配由小到大的索引序列号;按照所述索引序列号由小到大的顺序,将所述目标模块和所述目标日志类型对应的所述索引序列号以及对应的所述目标模块和所述目标日志类型存储至所述全局索引文件中。
13.根据本发明实施例的另一方面,还提供了一种基于嵌入式设备的日志的存储装置,包括:划分单元,用于将运行在所述嵌入式设备上的软件按照功能进行划分,得到多个目标模块,所述软件为完成对应的业务功能的计算机指令和数据的集合;第一分配单元,用于按照各所述目标模块在运行过程中日志记录产生的时间顺序,为所述日志记录分配对应的由小到大的序列号,且按照所述序列号由小到大的顺序将所述日志记录以及对应的所述序列号存储在目标日志文件中,所述目标日志文件为与所述目标模块对应的日志文件;更
新单元,用于在存储的过程中且在所述目标日志文件的可存容量不足存储下一个所述日志记录的情况下,将下一个所述日志记录以及对应的所述序列号覆盖所述目标日志文件中的当前的最小序列号对应的所述日志记录以及对应的所述序列号。
14.根据本发明实施例的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行任意一种所述的存储方法。
15.根据本发明实施例的再一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任意一种所述的存储方法。
16.根据本发明实施例的一方面,还提供了一种基于嵌入式设备的存储系统,包括:一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的存储方法。
17.在本发明实施例中,所述的基于嵌入式设备的日志的存储方法中,首先,按照功能对嵌入式设备运行的进行划分,得到多个目标模块;然后,根据各目标模块在运行过程中日志记录产生的时间顺序,为各个日志记录分配由小到大的序列号,且按照序列号由小到大的顺序,将由小到大的序列号以及序列号对应的序列号存储至目标日志文件中;最后,在存储的过程中且在目标日志文件的可存容量不足存储下一个日志记录的情况下,将下一个日志记录以及对应的序列号覆盖目标日志文件中的当前的最小序列号对应的日志记录以及对应的序列号。该方案中,对于各目标模块在运行过程中各日志记录产生的时间顺序,为各个日志记录分配由小到大的序列号,再按照序列号由小到大的顺序,将序列号及序列号对应的日志记录存储至对应的目标日志文件中,最后在目标日志文件不足以存储下一个日志记录,即目标日志文件达到最大存储容量的情况下,将下一个日志记录以及对应的序列号覆盖目标日志文件中最小序列号以及对应的日志记录,实现了较为灵活地对日志记录进行存储以及目标日志文件的循环使用,保证了在较为节省嵌入式设备的存储空间的基础上,较为灵活地控制目标日志文件的大小,从而解决了现有技术中难以在节省存储空间的情况下,较为灵活地对嵌入式设备的日志记录进行存储的问题,进而保证了查看和分析日志记录较为方便。
附图说明
18.构成本技术的一部分的说明书附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
19.图1示出了根据本技术的一种实施例的基于嵌入式设备的日志的存储方法的流程图;
20.图2示出了根据本技术的一种实施例的目标日志文件具体存储的示意图;
21.图3示出了根据本技术的一种实施例的模块索引文件具体存储的示意图;
22.图4示出了根据本技术的一种实施例的类型索引文件具体存储的示意图;
23.图5示出了根据本技术的一种实施例的全局索引文件具体存储的示意图;
24.图6示出了根据本技术的一种实施例的基于嵌入式设备的日志的存储装置的结构示意图;
25.图7示出了根据本技术的一种实施例的日志记录与模块索引文件的关系的示意
图。
26.其中,上述附图包括以下附图标记:
27.200、第一目标日志文件;201、目标日志类型描述;202、第二目标日志文件;203、第三目标日志文件;204、第四目标日志文件;205、模块索引文件;206、目标模块描述;207、类型序列号;208、目标日志类型;209、类型索引文件;210、目标日志类型描述;211、模块序列号;212、目标模块名称;213、全局索引文件;214、索引文件描述;215、索引序列号;216、目标模块名称和目标日志类型;217、第j目标日志文件;218、第j目标日志文件描述;219、第i模块索引文件;220、第i模块索引文件描述;221、第2序列号;222、第2日志记录;223、第n+2序列号;224、第n+2日志记录;225、第l类型索引号;226、第j目标日志类型。
具体实施方式
28.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
29.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
30.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
31.正如背景技术中所说的,现有技术中难以在节省存储空间的情况下,较为灵活地对嵌入式设备的日志记录进行存储的问题,为了解决上述问题,本技术的一种典型的实施方式中,提供了一种基于嵌入式设备的日志的存储方法、存储装置、计算机可读存储介质、处理器与基于嵌入式设备的存储系统。
32.根据本技术的实施例,提供了一种基于嵌入式设备的日志的存储方法。
33.图1是根据本技术实施例的基于嵌入式设备的日志的存储方法的流程图。如图1所示,该方法包括以下步骤:
34.步骤s101,将运行在上述嵌入式设备上的软件按照功能进行划分,得到多个目标模块,上述软件为完成对应的业务功能的计算机指令和数据的集合;
35.步骤s102,按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中,上述目标日志文件为与上述目标模块对应的日志文件;
36.步骤s103,在存储的过程中且在上述目标日志文件的可存容量不足存储下一个上述日志记录的情况下,将下一个上述日志记录以及对应的上述序列号覆盖上述目标日志文
件中的当前的最小序列号对应的上述日志记录以及对应的上述序列号。
37.上述的基于嵌入式设备的日志的存储方法中,首先,按照功能对嵌入式设备运行的进行划分,得到多个目标模块;然后,根据各目标模块在运行过程中日志记录产生的时间顺序,为各个日志记录分配由小到大的序列号,且按照序列号由小到大的顺序,将由小到大的序列号以及序列号对应的序列号存储至目标日志文件中;最后,在存储的过程中且在目标日志文件的可存容量不足存储下一个日志记录的情况下,将下一个日志记录以及对应的序列号覆盖目标日志文件中的当前的最小序列号对应的日志记录以及对应的序列号。该方案中,对于各目标模块在运行过程中各日志记录产生的时间顺序,为各个日志记录分配由小到大的序列号,再按照序列号由小到大的顺序,将序列号及序列号对应的日志记录存储至对应的目标日志文件中,最后在目标日志文件不足以存储下一个日志记录,即目标日志文件达到最大存储容量的情况下,将下一个日志记录以及对应的序列号覆盖目标日志文件中最小序列号以及对应的日志记录,实现了较为灵活地对日志记录进行存储以及目标日志文件的循环使用,保证了在较为节省嵌入式设备的存储空间的基础上,较为灵活地控制目标日志文件的大小,从而解决了现有技术中难以在节省存储空间的情况下,较为灵活地对嵌入式设备的日志记录进行存储的问题,进而保证了查看和分析日志记录较为方便。
38.具体地,上述目标日志文件可以为文本格式,对于一个日志记录以及对应的序列号在存储时,将一个日志记录以及对应的序列号存储在一行中。
39.另外,在实际的应用过程中,上述的序列号可以为1,2,

,n,这样不仅实现起来较为简单,还保证了较为节省存储空间。当然,上述的序列号并不限于1,2,

,n,还可以为日志记录产生的具体时间。
40.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
41.本技术的一种实施例中,上述目标日志文件有多个的情况下,按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中,包括:按照各上述目标模块在运行过程中产生的上述日志记录的重要程度进行划分,得到目标日志类型,上述目标日志类型至少包括以下之一:异常类、错误类、告警类、通知类、调试类、提示类;根据上述目标日志类型以及上述日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号;按照上述序列号由小到大的顺序,将上述日志记录以及对应的上述序列号,存储在与上述目标日志类型对应的上述目标日志文件中,其中,一个上述目标日志类型对应一个上述目标日志文件。在该实施例中,由于日志类型越重要,日志记录产生的概率越小,因此,在本方案中,将日志记录按照重要程度进行划分,得到不同的目标日志类型,并将日志记录存储在与目标日志类型对应的目标日志文件中,这样能够避免重要的日志记录被其他普通的日志记录进行覆盖。
42.另外,上述的一个目标模块在运行的过程中会产生多条日志记录,多条日志记录至少对应着一种目标日志类型,故一个目标模块至少对应着一个目标日志类型,一个目标日志类型对应着一个目标日志文件。当然,如表一所示,在一个软件对应着多个目标模块,且一个目标模块对应着多个目标日志类型的情况下,便可以形成如表一所示的对应关系。
43.表1
[0044] 目标模块1目标模块2

目标模块n异常类异常类目标日志文件异常类目标日志文件 异常类目标日志文件错误类错误类目标日志文件错误类目标日志文件 错误类目标日志文件告警类告警类目标日志文件告警类目标日志文件 告警类目标日志文件通知类通知类目标日志文件通知类目标日志文件 通知类目标日志文件调试类调试类目标日志文件调试类目标日志文件 调试类目标日志文件提示类提示类目标日志文件提示类目标日志文件 提示类目标日志文件
[0045]
在上述的实施例中,异常类日志记录(alert),用于记录使设备全部功能丧失的致命故障;错误类日志(error),用于记录使设备部分功能丧失的严重故障);告警类日志(warning),用于记录设备暂时出现的一般性故障;通知类日志(notice),用于记录发生的重要事件;提示类日志(info),用于记录发生的一般性事件;调试类日志(debug),用于记录调试过程发生的事件。
[0046]
为了进一步较为简单地为日志记录分配序列号,本技术的又一种实施例中,根据上述目标日志类型以及上述日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,包括:在同一个上述目标模块中,按照同一个上述目标日志类型中的上述日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,直到达到最大序列号,上述最大序列号为计算机最大字长对应的序列号。
[0047]
在实际的应用过程中,随着目标日志文件的不断循环使用,日志记录的序列号不断增加,由于计算机字长的限制,序列号会达到最大序列号。为了便于分析,在本方案中还可以规定序列号的最大值为文件可存容量(最大记录数)的整数倍。假设目标日志文件的最大存储容量为n,序列号最大值为可存容量的k倍即kn,如图2所示,给出了日志记录的写入目标日志文件的具体过程:第一目标日志文件200、第二目标日志文件202、第三目标日志文件203以及第四目标日志文件204均为同一个目标日志类型对应的目标日志文件,即具有相同的目标日志类型描述201,其中,第一目标日志文件200为存储容量小于n的目标日志文件;第二目标日志文件202为大于存储容量n的目标日志文件,即第一目标日志文件200达到最大存储容量之后,在第二目标日志文件202中,序列号n+1以及对应的日志记录(图中未示出)将序列号1以及对应的日志记录(图中未示出)进行覆盖,序列号n+2以及对应的日志记录将序列号2以及对应的日志记录进行覆盖;第三目标日志文件203为大于两倍最大存储容量的目标日志文件,在第二目标日志文件202达到最大存储容量(即序列号达到2n之后),序列号2n+1以及对应的日志记录将序列号n+1以及对应的日志记录进行覆盖,序列号2n+2以及对应的日志记录将序列号n+2以及对应的日志记录进行覆盖;第四目标日志文件204为大于k倍最大存储容量的目标日志文件,在进行日志记录写入时间顺序判断时,若目标日志文件最后记录的序列号小于kn,在某一个目标日志文件达到最大存储容量(即序列号达到kn)之后,序列号1以及对应的日志记录将序列号(k-1)n+1以及对应的日志记录进行覆盖,序列号2以及对应的日志记录将序列号(k-1)n+2以及对应的日志记录进行覆盖。由上述具体的写入过程可以得出,若序列号越大,日志记录写入的时间越晚;若日志文件最后记录的序列号大于kn,则小于n的序列号需要加上kn再进行比较。
[0048]
本技术的另一种实施例中,一个上述目标模块对应多个目标日志类型,一个上述
目标模块对应一个模块索引文件,按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中之后,上述存储方法还包括:按照同一个上述目标模块中,各上述目标日志类型对应的上述日志记录产生的时间顺序,为上述日志记录对应的上述目标日志类型分配由小到大的类型序列号;按照上述类型序列号由小到大的顺序,将上述目标日志类型的类型序列号以及对应的上述目标日志类型存储至上述模块索引文件中。在该实施例中,通过各个目标模块建立对应的模块索引文件,可以通过模块索引文件,可以较为简单地对同一个目标模块中的多种目标日志类型进行分析,进一步地实现了对目标日志文件的综合分析。
[0049]
具体地,如图3所示,一个目标模块对应着一个模块索引文件205,其中,目标模块描述206用于对对应的目标模块进行描述,类型序列号207以及对应的目标日志类型208组成了一条记录,存储在模块索引文件205中。在一个上述软件中,可以对应着多个模块索引文件205。
[0050]
为了进一步地较为简单地对同一个目标日志类型中的日志记录进行分析,本技术的再一种实施例中,一个上述目标模块对应多个目标日志类型,一个上述目标日志类型对应一个类型索引文件,按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中之后,上述存储方法还包括:按照同一个上述目标日志类型中,各上述目标模块对应的上述日志记录产生的时间顺序,为上述日志记录对应的上述目标模块分配由小到大的模块序列号;按照上述模块序列号由小到大的顺序,将上述目标模块的上述模块序列号以及对应的上述目标模块存储至上述类型索引文件中。
[0051]
具体地,如图4所示,一个目标日志类型对应着一个类型索引文件209,其中,目标日志类型描述210用于对对应的目标日志类型进行描述,模块序列号211以及对应的目标模块名称212组成了一条记录,存储在类型索引文件209中。在一个上述软件中,可以对应着多个类型索引文件209。
[0052]
本技术的一种实施例中,上述软件对应一个全局索引文件,一个上述目标模块对应多个目标日志类型,按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中之后,上述存储方法还包括:按照上述软件中上述日志记录产生的时间顺序,为上述日志记录对应的上述目标模块和上述目标日志类型分配由小到大的索引序列号;按照上述索引序列号由小到大的顺序,将上述目标模块和上述目标日志类型对应的上述索引序列号以及对应的上述目标模块和上述目标日志类型存储至上述全局索引文件中。在该实施例中,通过为上述软件构建全局索引文件,进一步地保证了可以较为简单地对上述软件进行分析,进一步地实现了对目标日志文件的综合分析。
[0053]
具体地,如图5所示,上述软件类型对应着一个全局索引文件213,其中,索引文件描述214用于对全局索引文件进行描述,索引序列号215以及对应的目标模块名称和目标日志类型216组成了一条记录,存储在全局索引文件213中。
[0054]
本技术实施例还提供了一种基于嵌入式设备的日志的存储装置,需要说明的是,本技术实施例的基于嵌入式设备的日志的存储装置可以用于执行本技术实施例所提供的用于基于嵌入式设备的日志的存储方法。以下对本技术实施例提供的基于嵌入式设备的日志的存储装置进行介绍。
[0055]
图6是根据本技术实施例的基于嵌入式设备的日志的存储装置的结构示意图。如图6所示,该装置包括:
[0056]
划分单元10,用于将运行在上述嵌入式设备上的软件按照功能进行划分,得到多个目标模块,上述软件为完成对应的业务功能的计算机指令和数据的集合;
[0057]
第一分配单元20,用于按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中,上述目标日志文件为与上述目标模块对应的日志文件;
[0058]
更新单元30,用于在存储的过程中且在上述目标日志文件的可存容量不足存储下一个上述日志记录的情况下,将下一个上述日志记录以及对应的上述序列号覆盖上述目标日志文件中的当前的最小序列号对应的上述日志记录以及对应的上述序列号。
[0059]
上述的基于嵌入式设备的日志的存储装置中,划分单元用于将运行在上述嵌入式设备上的软件按照功能进行划分,得到多个目标模块,上述软件为完成对应的业务功能的计算机指令和数据的集合;第一分配单元用于按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中,上述目标日志文件为与上述目标模块对应的日志文件;更新单元用于在存储的过程中且在上述目标日志文件的可存容量不足存储下一个上述日志记录的情况下,将下一个上述日志记录以及对应的上述序列号覆盖上述目标日志文件中的当前的最小序列号对应的上述日志记录以及对应的上述序列号。该方案中,对于各目标模块在运行过程中各日志记录产生的时间顺序,为各个日志记录分配由小到大的序列号,再按照序列号由小到大的顺序,将序列号及序列号对应的日志记录存储至对应的目标日志文件中,最后在目标日志文件不足以存储下一个日志记录,即目标日志文件达到最大存储容量的情况下,将下一个日志记录以及对应的序列号覆盖目标日志文件中最小序列号以及对应的日志记录,实现了较为灵活地对日志记录进行存储以及目标日志文件的循环使用,保证了在较为节省嵌入式设备的存储空间的基础上,较为灵活地控制目标日志文件的大小,从而解决了现有技术中难以在节省存储空间的情况下,较为灵活地对嵌入式设备的日志记录进行存储的问题,进而保证了查看和分析日志记录较为方便。
[0060]
具体地,上述目标日志文件可以为文本格式,对于一个日志记录以及对应的序列号在存储时,将一个日志记录以及对应的序列号存储在一行中。
[0061]
另外,在实际的应用过程中,上述的序列号可以为1,2,

,n,这样不仅实现起来较为简单,还保证了较为节省存储空间。当然,上述的序列号并不限于1,2,

,n,还可以为日志记录产生的具体时间。
[0062]
本技术的一种实施例中,上述目标日志文件有多个的情况下,上述第一分配单元包括划分模块、分配模块和存储模块,其中,上述划分模块用于按照各上述目标模块在运行
过程中产生的上述日志记录的重要程度进行划分,得到目标日志类型,上述目标日志类型至少包括以下之一:异常类、错误类、告警类、通知类、调试类、提示类;上述分配模块用于根据上述目标日志类型以及上述日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号;上述存储模块用于按照上述序列号由小到大的顺序,将上述日志记录以及对应的上述序列号,存储在与上述目标日志类型对应的上述目标日志文件中,其中,一个上述目标日志类型对应一个上述目标日志文件。在该实施例中,由于日志类型越重要,日志记录产生的概率越小,因此,在本方案中,将日志记录按照重要程度进行划分,得到不同的目标日志类型,并将日志记录存储在与目标日志类型对应的目标日志文件中,这样能够避免重要的日志记录被其他普通的日志记录进行覆盖。
[0063]
另外,上述的一个目标模块在运行的过程中会产生多条日志记录,多条日志记录至少对应着一种目标日志类型,故一个目标模块至少对应着一个目标日志类型,一个目标日志类型对应着一个目标日志文件。当然,如表一所示,在一个软件对应着多个目标模块,且一个目标模块对应着多个目标日志类型的情况下,便可以形成如表一所示的对应关系。
[0064]
在上述的实施例中,异常类日志记录(alert),用于记录使设备全部功能丧失的致命故障;错误类日志(error),用于记录使设备部分功能丧失的严重故障);告警类日志(warning),用于记录设备暂时出现的一般性故障;通知类日志(notice),用于记录发生的重要事件;提示类日志(info),用于记录发生的一般性事件;调试类日志(debug),用于记录调试过程发生的事件。
[0065]
为了进一步较为简单地为日志记录分配序列号,本技术的又一种实施例中,上述分配模块包括分配子模块,用于在同一个上述目标模块中,按照同一个上述目标日志类型中的上述日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,直到达到最大序列号,上述最大序列号为计算机最大字长对应的序列号。
[0066]
在实际的应用过程中,随着目标日志文件的不断循环使用,日志记录的序列号不断增加,由于计算机字长的限制,序列号会达到最大序列号。为了便于分析,在本方案中还可以规定序列号的最大值为文件可存容量(最大记录数)的整数倍。假设目标日志文件的最大存储容量为n,序列号最大值为可存容量的k倍即kn,如图2所示,给出了日志记录的写入目标日志文件的具体过程:第一目标日志文件200、第二目标日志文件202、第三目标日志文件203以及第四目标日志文件204均为同一个目标日志类型对应的目标日志文件,即具有相同的目标日志类型描述201,其中,第一目标日志文件200为存储容量小于n的目标日志文件;第二目标日志文件202为大于存储容量n的目标日志文件,即第一目标日志文件200达到最大存储容量之后,在第二目标日志文件202中,序列号n+1以及对应的日志记录(图中未示出)将序列号1以及对应的日志记录(图中未示出)进行覆盖,序列号n+2以及对应的日志记录将序列号2以及对应的日志记录进行覆盖;第三目标日志文件203为大于两倍最大存储容量的目标日志文件,在第二目标日志文件202达到最大存储容量(即序列号达到2n之后),序列号2n+1以及对应的日志记录将序列号n+1以及对应的日志记录进行覆盖,序列号2n+2以及对应的日志记录将序列号n+2以及对应的日志记录进行覆盖;第四目标日志文件204为大于k倍最大存储容量的目标日志文件,在进行日志记录写入时间顺序判断时,若目标日志文件最后记录的序列号小于kn,在某一个目标日志文件达到最大存储容量(即序列号达到kn)之后,序列号1以及对应的日志记录将序列号(k-1)n+1以及对应的日志记录进行覆盖,序列
号2以及对应的日志记录将序列号(k-1)n+2以及对应的日志记录进行覆盖。由上述具体的写入过程可以得出,若序列号越大,日志记录写入的时间越晚;若日志文件最后记录的序列号大于kn,则小于n的序列号需要加上kn再进行比较。
[0067]
本技术的另一种实施例中,上述存储装置还包括第二分配单元和第一存储单元,其中,一个上述目标模块对应多个目标日志类型,一个上述目标模块对应一个模块索引文件,按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中之后,上述第二分配单元用于按照同一个上述目标模块中,各上述目标日志类型对应的上述日志记录产生的时间顺序,为上述日志记录对应的上述目标日志类型分配由小到大的类型序列号;上述第一存储单元用于按照上述类型序列号由小到大的顺序,将上述目标日志类型的类型序列号以及对应的上述目标日志类型存储至上述模块索引文件中。在该实施例中,通过各个目标模块建立对应的模块索引文件,可以通过模块索引文件,可以较为简单地对同一个目标模块中的多种目标日志类型进行分析,进一步地实现了对目标日志文件的综合分析。
[0068]
具体地,如图3所示,一个目标模块对应着一个模块索引文件205,其中,目标模块描述206用于对对应的目标模块进行描述,类型序列号207以及对应的目标日志类型208组成了一条记录,存储在模块索引文件205中。在一个上述软件中,可以对应着多个模块索引文件205。
[0069]
为了进一步地较为简单地对同一个目标日志类型中的日志记录进行分析,本技术的再一种实施例中,上述存储装置还包括第三分配单元和第二存储单元,其中,一个上述目标模块对应多个目标日志类型,一个上述目标日志类型对应一个类型索引文件,按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中之后,上述第三分配单元用于按照同一个上述目标日志类型中,各上述目标模块对应的上述日志记录产生的时间顺序,为上述日志记录对应的上述目标模块分配由小到大的模块序列号;上述第二存储单元用于按照上述模块序列号由小到大的顺序,将上述目标模块的上述模块序列号以及对应的上述目标模块存储至上述类型索引文件中。
[0070]
具体地,如图4所示,一个目标日志类型对应着一个类型索引文件209,其中,目标日志类型描述210用于对对应的目标日志类型进行描述,模块序列号211以及对应的目标模块名称212组成了一条记录,存储在类型索引文件209中。在一个上述软件中,可以对应着多个类型索引文件209。
[0071]
本技术的一种实施例中,上述存储装置还包括第四分配单元和第三存储单元,其中,上述软件对应一个全局索引文件,一个上述目标模块对应多个目标日志类型,按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中之后,上述第四分配单元用于按照上述软件中上述日志记录产生的时间顺序,为上述日志记录对应的上述目标模块和上述目标日志类型分配由小到大的索引序列号;上述第三存储单元用于按照上述索引序列号由小到大的顺序,将上述目标模块和上述目标日志类型对应的上述索引序列号以及对应的上述目标模块和上述目标日志类型存储
至上述全局索引文件中。在该实施例中,通过为上述软件构建全局索引文件,进一步地保证了可以较为简单地对上述软件进行分析,进一步地实现了对目标日志文件的综合分析。
[0072]
具体地,如图5所示,上述软件类型对应着一个全局索引文件213,其中,索引文件描述214用于对全局索引文件进行描述,索引序列号215以及对应的目标模块名称和目标日志类型216组成了一条记录,存储在全局索引文件213中。
[0073]
为了使得本领域技术人员较为清楚、明了地理解本技术的技术方案,下面将结合具体的实施例进行说明
[0074]
如图7所示,以第i目标模块的第j目标日志类型的第j目标日志文件为例,其中,第j目标日志文件217中第j目标日志文件描述218用于对第j目标日志文件217进行描述,假设第j目标日志文件的最大存储容量为n,在其存储达到最大存储容量n之后,需要进行翻转,即从第j目标日志文件的文件头重新开始存储,故第n+2序列号223以及第n+2序列号223对应的第n+2日志记录224会将第2序列号221以及第2序列号221对应的第2日志记录222进行覆盖,在覆盖之后,第n+2序列号以及对应的第n+2日志记录的插入会影响到第i目标模块对应的第i模块索引文件219,以及第j目标日志类型对应的第j类型索引文件,以及全局索引文件,如下以第i模块索引文件219为例进行介绍,第i模块索引文件219中的第i模块索引文件描述220用于对第i模块索引文件219进行描述,第n+2序列号以及对应的第n+2日志记录插入到第j目标日志文件217之后,还会根据第n+2日志记录确定第l类型索引号225,并将第l类型索引号225以及对应的第j目标日志类型226存入到第i模块索引文件219中。
[0075]
若类型索引文件、模块索引文件以及全局索引文件在达到最大计算机字长之后,也可以从对应的文件头进行翻转。
[0076]
上述基于嵌入式设备的日志的存储装置包括处理器和存储器,上述划分单元、第一分配单元和更新单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0077]
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术中难以在节省存储空间的情况下,较为灵活地对嵌入式设备的日志记录进行存储的问题。
[0078]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
[0079]
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述基于嵌入式设备的日志的存储方法。
[0080]
本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述基于嵌入式设备的日志的存储方法。
[0081]
本技术的一种典型的实施例中,还提供了一种基于嵌入式设备的存储系统,包括:一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的存储方法。
[0082]
上述的基于嵌入式设备的存储系统可以执行上述任一种上述的存储方法,上述的存储方法中,首先,按照功能对嵌入式设备运行的进行划分,得到多个目标模块;然后,根据
各目标模块在运行过程中日志记录产生的时间顺序,为各个日志记录分配由小到大的序列号,且按照序列号由小到大的顺序,将由小到大的序列号以及序列号对应的序列号存储至目标日志文件中;最后,在存储的过程中且在目标日志文件的可存容量不足存储下一个日志记录的情况下,将下一个日志记录以及对应的序列号覆盖目标日志文件中的当前的最小序列号对应的日志记录以及对应的序列号。该方案中,对于各目标模块在运行过程中各日志记录产生的时间顺序,为各个日志记录分配由小到大的序列号,再按照序列号由小到大的顺序,将序列号及序列号对应的日志记录存储至对应的目标日志文件中,最后在目标日志文件不足以存储下一个日志记录,即目标日志文件达到最大存储容量的情况下,将下一个日志记录以及对应的序列号覆盖目标日志文件中最小序列号以及对应的日志记录,实现了较为灵活地对日志记录进行存储以及目标日志文件的循环使用,保证了在较为节省嵌入式设备的存储空间的基础上,较为灵活地控制目标日志文件的大小,从而解决了现有技术中难以在节省存储空间的情况下,较为灵活地对嵌入式设备的日志记录进行存储的问题,进而保证了查看和分析日志记录较为方便。
[0083]
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
[0084]
步骤s101,将运行在上述嵌入式设备上的软件按照功能进行划分,得到多个目标模块,上述软件为完成对应的业务功能的计算机指令和数据的集合;
[0085]
步骤s102,按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中,上述目标日志文件为与上述目标模块对应的日志文件;
[0086]
步骤s103,在存储的过程中且在上述目标日志文件的可存容量不足存储下一个上述日志记录的情况下,将下一个上述日志记录以及对应的上述序列号覆盖上述目标日志文件中的当前的最小序列号对应的上述日志记录以及对应的上述序列号。
[0087]
本文中的设备可以是服务器、pc、pad、手机等。
[0088]
本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
[0089]
步骤s101,将运行在上述嵌入式设备上的软件按照功能进行划分,得到多个目标模块,上述软件为完成对应的业务功能的计算机指令和数据的集合;
[0090]
步骤s102,按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中,上述目标日志文件为与上述目标模块对应的日志文件;
[0091]
步骤s103,在存储的过程中且在上述目标日志文件的可存容量不足存储下一个上述日志记录的情况下,将下一个上述日志记录以及对应的上述序列号覆盖上述目标日志文件中的当前的最小序列号对应的上述日志记录以及对应的上述序列号。
[0092]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0093]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的
方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0094]
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0095]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0096]
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0097]
从以上的描述中,可以看出,本技术上述的实施例实现了如下技术效果:
[0098]
1)、本技术的基于嵌入式设备的日志的存储方法中,首先,按照功能对嵌入式设备运行的进行划分,得到多个目标模块;然后,根据各目标模块在运行过程中日志记录产生的时间顺序,为各个日志记录分配由小到大的序列号,且按照序列号由小到大的顺序,将由小到大的序列号以及序列号对应的序列号存储至目标日志文件中;最后,在存储的过程中且在目标日志文件的可存容量不足存储下一个日志记录的情况下,将下一个日志记录以及对应的序列号覆盖目标日志文件中的当前的最小序列号对应的日志记录以及对应的序列号。该方案中,对于各目标模块在运行过程中各日志记录产生的时间顺序,为各个日志记录分配由小到大的序列号,再按照序列号由小到大的顺序,将序列号及序列号对应的日志记录存储至对应的目标日志文件中,最后在目标日志文件不足以存储下一个日志记录,即目标日志文件达到最大存储容量的情况下,将下一个日志记录以及对应的序列号覆盖目标日志文件中最小序列号以及对应的日志记录,实现了较为灵活地对日志记录进行存储以及目标日志文件的循环使用,保证了在较为节省嵌入式设备的存储空间的基础上,较为灵活地控制目标日志文件的大小,从而解决了现有技术中难以在节省存储空间的情况下,较为灵活地对嵌入式设备的日志记录进行存储的问题,进而保证了查看和分析日志记录较为方便。
[0099]
2)、本技术的基于嵌入式设备的日志的存储装置中,划分单元用于将运行在上述嵌入式设备上的软件按照功能进行划分,得到多个目标模块,上述软件为完成对应的业务功能的计算机指令和数据的集合;第一分配单元用于按照各上述目标模块在运行过程中日志记录产生的时间顺序,为上述日志记录分配对应的由小到大的序列号,且按照上述序列号由小到大的顺序将上述日志记录以及对应的上述序列号存储在目标日志文件中,上述目
标日志文件为与上述目标模块对应的日志文件;更新单元用于在存储的过程中且在上述目标日志文件的可存容量不足存储下一个上述日志记录的情况下,将下一个上述日志记录以及对应的上述序列号覆盖上述目标日志文件中的当前的最小序列号对应的上述日志记录以及对应的上述序列号。该方案中,对于各目标模块在运行过程中各日志记录产生的时间顺序,为各个日志记录分配由小到大的序列号,再按照序列号由小到大的顺序,将序列号及序列号对应的日志记录存储至对应的目标日志文件中,最后在目标日志文件不足以存储下一个日志记录,即目标日志文件达到最大存储容量的情况下,将下一个日志记录以及对应的序列号覆盖目标日志文件中最小序列号以及对应的日志记录,实现了较为灵活地对日志记录进行存储以及目标日志文件的循环使用,保证了在较为节省嵌入式设备的存储空间的基础上,较为灵活地控制目标日志文件的大小,从而解决了现有技术中难以在节省存储空间的情况下,较为灵活地对嵌入式设备的日志记录进行存储的问题,进而保证了查看和分析日志记录较为方便。
[0100]
3)、本技术的基于嵌入式设备的存储系统可以执行上述任一种上述的存储方法,上述的存储方法中,首先,按照功能对嵌入式设备运行的进行划分,得到多个目标模块;然后,根据各目标模块在运行过程中日志记录产生的时间顺序,为各个日志记录分配由小到大的序列号,且按照序列号由小到大的顺序,将由小到大的序列号以及序列号对应的序列号存储至目标日志文件中;最后,在存储的过程中且在目标日志文件的可存容量不足存储下一个日志记录的情况下,将下一个日志记录以及对应的序列号覆盖目标日志文件中的当前的最小序列号对应的日志记录以及对应的序列号。该方案中,对于各目标模块在运行过程中各日志记录产生的时间顺序,为各个日志记录分配由小到大的序列号,再按照序列号由小到大的顺序,将序列号及序列号对应的日志记录存储至对应的目标日志文件中,最后在目标日志文件不足以存储下一个日志记录,即目标日志文件达到最大存储容量的情况下,将下一个日志记录以及对应的序列号覆盖目标日志文件中最小序列号以及对应的日志记录,实现了较为灵活地对日志记录进行存储以及目标日志文件的循环使用,保证了在较为节省嵌入式设备的存储空间的基础上,较为灵活地控制目标日志文件的大小,从而解决了现有技术中难以在节省存储空间的情况下,较为灵活地对嵌入式设备的日志记录进行存储的问题,进而保证了查看和分析日志记录较为方便。
[0101]
以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!