一种日志存储方法、装置、设备及可读存储介质与流程

文档序号:19350259发布日期:2019-12-06 21:18阅读:207来源:国知局
一种日志存储方法、装置、设备及可读存储介质与流程

本发明涉及数据存储领域,特别涉及一种日志存储方法、装置、设备及计算机可读存储介质。



背景技术:

当前,随着科学技术的快速发展,个人计算机、智能手机等各种类型的电子设备越来越多,为人们的日常工作和生活带来了诸多便捷。

在各种电子设备的日常运行过程中,通常需要记录下相应的日志。技术维护人员可以根据这些日志来查看电子设备在不同时间段下的运行状态,并且当电子设备出现异常后,利用之前记录下来的日志对电子设备进行问题排查和修复。由于电子设备执行的操作种类、步骤繁多,因此会产生很多日志。现有的日志一般以文件的形式存储,这种存储方式会占用较大的存储空间,使得用户可用的存储空间减小,增加了系统成本。

因此,如何解决日志文件占用空间较大的问题,是本领域技术人员需要解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种日志存储方法、装置、设备及计算机可读存储介质,解决了日志文件占用空间较大的问题。

为解决上述技术问题,本发明提供了一种日志存储方法,包括:

获取原始日志数据,并对所述原始日志数据进行添加字段处理,得到日志数据;其中,所述日志数据包括标志位、所述原始日志数据和结尾字段;

判断所述日志数据的大小是否大于当前存储区域的剩余空间的大小;

若否,则将所述日志数据存入所述当前存储区域中;

若是,则对当前存储区域的候补存储区域进行格式化操作,并在所述候补存储区域中存入所述日志数据。

可选的,所述日志数据包括标志位,包括:

将所述标志位放置于所述日志数据的开头。

可选的,所述标志位为预设ascii码。

可选的,还包括:

利用预设存储顺序对存储空间中的各个存储区域进行排序;

将第一个存入所述日志数据的所述存储区域确定为第一存储区域,将最后一个存入所述日志数据的所述存储区域确定为最后存储区域。

可选的,所述利用预设存储顺序对存储空间中的各个存储区域进行排序,包括:

利用所述预设存储顺序对flash中的各个页进行排序。

可选的,在确定所述日志数据的大小大于当前存储区域的剩余空间的大小之后,在所述对当前存储区域的候补存储区域进行格式化操作之前,还包括:

判断所述当前存储区域是否为所述最后存储区域;

若所述当前存储区域为所述最后存储区域,则更新所述标志位,并将更新后的所述标志位确定为当前标志位。

可选的,在断电重启后,还包括:

按照所述存储顺序从所述第一存储区域开始,获取每条所述日志数据中的所述标志位,并判断是否有相邻所述日志数据的所述标志位发生变化;

若否,则将最后一个存入所述日志数据的所述存储区域确定为所述当前存储区域;

若是,则将最后一条具有所述当前标志位的所述日志数据确定为所述最新日志数据,将存入所述最新日志数据的所述存储区域确定为所述当前存储区域。

本发明还提供一种日志存储装置,包括:

数据获取模块,用于获取原始日志数据,并对所述原始日志数据进行添加字段处理,得到日志数据;其中,所述日志数据包括标志位、所述原始日志数据和结尾字段;

判断模块,用于判断所述日志数据的大小是否大于当前存储区域的剩余空间的大小;

第一存储模块,用于若所述日志数据的大小小于或等于所述当前存储区域的剩余空间的大小,则将所述日志数据存入所述当前存储区域中;

第二存储模块,用于若所述日志数据的大小大于所述当前存储区域的剩余空间的大小,则对当前存储区域的候补存储区域进行格式化操作,并在所述候补存储区域中存入所述日志数据。

本发明还提供一种日志储存设备,包括存储器和处理器,其中:

所述存储器,用于存储计算机程序;

所述处理器,用于执行所述计算机程序,以实现上述的日志储存方法。

本发明还提供一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的日志存储方法。

本发明提供的方法获取原始日志数据,并对原始日志数据进行添加字段处理,得到日志数据;其中,日志数据包括标志位、原始日志数据和结尾字段。判断日志数据的大小是否大于当前存储区域的剩余空间的大小。若否,则将日志数据存入当前存储区域中。若是,则对当前存储区域的候补存储区域进行格式化操作,并在候补存储区域中存入日志数据。本方法采用直接存储日志数据的方法,不需要对日志数据添加过多的其他数据以生成日志文件,比现有技术基于文件系统的日志存储方法占用的存储空间更小,减少了占用的存储空间,降低了系统成本。

此外,本发明还提供了一种日志存储装置、设备及计算机可读存储介质,同样具有上述有益效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种日志存储方法流程图;

图2为本发明实施例提供的另一种日志存储方法流程图;

图3为本发明实施例提供的一种日志存储方法的示意图;

图4为本发明实施例提供的另一种日志存储方法的示意图;

图5为本发明实施例提供的另一种日志存储方法的示意图;

图6为本发明实施例提供的另一种日志存储方法的示意图;

图7为本发明实施例提供的一种日志存储装置的结构示意图;

图8为本发明实施例提供的一种日志存储设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

请参考图1,图1为本发明实施例提供的一种日志存储方法流程图。该方法包括:

s101:获取原始日志数据,并对原始日志数据进行添加字段处理,得到日志数据。

具体的,首先获取原始日志数据,在获取到原始日志数据后,对原始日志数据进行添加字段处理,得到日志数据。其中,添加的字段包括标志位和结尾字段。本实施例并不限定添加的字段是否还包括其他字段,例如日志长度字段。本实施例并不限定标志位的具体个数,但是标志位个数至少为两个,以便对日志数据进行区分。优选的,将标志位放置在整个日志数据的开头,这样标志位还可以起到标志日志数据开始的作用。标志位可以为预设ascii码,本实施例并不限定标志位、结尾字段等字段的具体位数和内容,只需与原始日志数据、空存储区域的原有数据和其他添加的字段区分开来即可。本实施例并不限定每条日志数据的大小,也不限定每条日志数据的大小是否相同,可以根据具体情况进行设定,例如为了提高存储区域利用率,可以设定每条日志数据的大小为固定大小;或者为了便于读取,设定每条日志数据均为完整日志数据,这样每次读取均可查看完整日志数据,但是日志数据的大小可能不相同。本实施例并不限定执行获取原始日志数据操作的频率,例如当设定每条日志数据的大小为固定大小时,每当原始日志数据达到预设大小时,执行获取原始日志数据的操作;或者当设定每条日志数据均为完整日志数据时,在检测到有完整的原始日志数据时,执行获取原始日志数据的操作。

s102:判断日志数据的大小是否大于当前存储区域的剩余空间的大小。

在获取日志数据后,将日志数据的大小和当前存储区域的剩余空间的大小进行比较,判断日志数据的大小是否大于剩余空间的大小。

s103:将日志数据存入当前存储区域中。

当日志数据的大小小于或等于剩余空间的大小时,将日志数据存入当前存储区域中。具体的,本实施例并不限定日志数据的储存形式,例如可以将日志数据以ascii码字符串的形式储存;或者将日志数据以二进制字符串的形式储存。本实施例并不限定存入日志数据的方式,例如可以从日志数据的标志位开始存储,直到将结尾字段存入,则该日志数据被存入存储区域;或者从结尾字段开始存储,直到将标志位存入,则该日志数据被存入存储区域。

s104:对当前存储区域的候补存储区域进行格式化操作,并在候补存储区域中存入日志数据。

当日志数据的大小大于当前存储区域的剩余空间的大小时,对当前存储区域的候补存储区域进行格式化操作。具体的,本实施例中,设置有预设存储顺序,利用预设存储顺序对存储空间中的各个存储区域进行排序。本实施例并不限定存储空间的类别,例如可以为整个flash或flash中的几个页,或者是其他掉电非易失性存储介质的部分或整个存储空间。本实施例同样不限定各个存储区域的大小,例如每个flash中的页为一个存储区域。

本实施例并不限定预设存储顺序的具体内容,即不限定具体的存储顺序,例如可以从低地址到高地址;或者从高地址到低地址。本实施例中,按照存储顺序存入日志数据,将第一个存入日志数据的存储区域确定为第一存储区域,将最后一个存入日志数据的存储区域确定为最后存储区域。本实施例并不限定候补存储区域的设定方法,例如可以按照存储顺序,将顺序相邻的两个存储区域中后一个存储区域确定为前一个存储区域的候补存储区域,将最后存储区域的候补存储区域确定为第一存储区域。在对候补存储区域进行格式化操作之后,将日志数据存入候补存储区域。

优选的,在确定日志数据的大小大于当前存储区域的剩余空间的大小后,判断当前存储区域是否为最后存储区域。若当前存储区域不是最后存储区域,则执行对当前存储区域的候补存储区域进行格式化操作的步骤。若当前存储区域为最后存储区域,则按照标志位更新顺序更新标志位。标志位更新顺序被提前设定好,用来确定当前标志位。将更新后的标志位确定为当前标志位,再执行对当前存储区域的候补存储区域进行格式化操作的步骤。具体的,为了保存较新的日志数据,当当前最初区域为存储空间中的最后存储区域,且刚获取的日志数据的大小大于最后存储区域的剩余空间的大小时,将标志位更新并将更新后的标志位,即当前标志位,放入刚获取的日志数据中。再对最后存储区域的候补存储区域,即第一存储区域进行格式化操作,删除较旧的日志数据,存入刚获取的日志数据。更新标志位可以区分较新的日志数据和较旧的日志数据,同时便于在断电重启后确定当前存储区域。

具体的,请参考图3、图4、图5和图6。本实施例中,存储空间为flash,存储区域为flash中的各个页。获取原始日志数据,在对原始日志数据进行添加字段处理后得到日志数据,判断日志数据的大小是否大于当前存储区域的剩余空间的大小。本实施例中认为每条日志数据的大小均小于各个存储区域的大小。当存储区域未存入任何日志数据时,即存储区域为空存储区域时,获取任何日志数据均可存入空存储区域,请参考图3。按照由低地址到高地址的存储顺序对各个存储区域进行排序,确定各个存储区域的候补存储区域。执行获取日志数据并判断日志数据的大小是否大于当前存储区域的剩余空间的大小的操作,直至日志数据的大小大于最后存储区域的剩余空间的大小,请参考图4。更新标志位,并将更新后的标志位确定为当前标志位。最后存储区域的候补存储区域为第一存储区域,对第一存储区域进行格式化操作,并在第一存储区域内存入具有更新后标志位的日志数据,请参考图5,图5中带有斜线阴影的日志数据为具有更新后标志位的日志数据。继续执行获取日志数据并判断日志数据的大小是否大于当前存储区域的剩余空间的大小的操作,请参考图6。

应用本发明实施例提供的日志存储方法,获取原始日志数据,并对原始日志数据进行添加字段处理,得到日志数据;其中,日志数据包括标志位、原始日志数据和结尾字段。判断日志数据的大小是否大于当前存储区域的剩余空间的大小。若否,则将日志数据存入当前存储区域中。若是,则对当前存储区域的候补存储区域进行格式化操作,并在候补存储区域中存入日志数据。本方法采用直接存储日志数据的方法,不需要对日志数据添加过多的其他数据以生成日志文件,比现有技术基于文件系统的日志存储方法占用的存储空间更小,减少了占用的存储空间,降低了系统成本。

实施例二:

基于实施例一,在实际应用中,会出现断电后重新启动的情况。在重启后,为了保存断电重启前存入的较新的日志数据,需要利用标志位确定当前存储区域,以便删除断电前存入的较旧日志数据,存入重启后新获取的日志数据。具体请参考图2,图2为本发明实施例提供的另一种日志存储方法流程图,包括:

s201:按照存储顺序从第一存储区域开始,获取每条日志数据中的标志位。

具体的,按照存储顺序从第一存储区域开始,获取各个存储区域内的日志数据的标志位,直至最后存储区域。在各个存储区域中,按照存储顺序获取日志数据的标志位。

s202:判断是否有相邻日志数据的标志位发生变化。

在获取到每条日志数据的标志位后,判断相邻日志数据的标志位是否发生变化。本实施例中,相邻日志数据可以为按照存储顺序存入相同存储区域的两条相邻日志数据;也可以为除最后存储区域以外的任一存储区域内的最后一条日志数据与其候补存储区域的第一条日志数据。

s203:将最后一个存入日志数据的存储区域确定为当前存储区域。

若没有相邻日志数据的标志位发生变化,则断电前最后一个存入的日志数据即为最新的日志数据,故将存有最新的日志数据的存储区域,即最后一个存入日志数据的存储区域确定为当前存储区域。在确定了当前存储区域后,可以执行获取原始日志数据的步骤,继续存入日志数据。

s204:将最后一条具有当前标志位的日志数据确定为最新日志数据,将存入最新日志数据的存储区域确定为当前存储区域。

若存在相邻日志数据的标志位发生变化,说明在最后一条具有当前标志位的日志数据之后,在具有上一标志位的日志数据之前的位置处存入日志数据时,发生了断电。故将最后一条具有当前标志位的日志数据确定为最新日志数据,将存入最新日志数据的存储区域确定为当前存储区域。

应用本发明实施例提供的日志存储方法,按照存储顺序从第一存储区域开始,获取每条日志数据中的标志位。判断是否有相邻日志数据的标志位发生变化。若没有相邻日志数据的标志位发生变化,则将最后一个存入日志数据的存储区域确定为当前存储区域。若存在相邻日志数据的标志位发生变化,则将最后一条具有当前标志位的日志数据确定为最新日志数据,将存入最新日志数据的存储区域确定为当前存储区域。本方法可以在断电重启后,利用标志位确定当前存储区域,以便删除断电前存入的较旧日志数据,存入重启后新获取的日志数据。

实施例三:

下面对本发明实施例提供的日志存储装置进行介绍,下文描述的日志存储装置与上文描述的日志存储方法可相互对应参照。

请参考图7,图7为本发明实施例提供的一种日志存储装置的结构示意图,包括:

数据获取模块100,用于获取原始日志数据,并对原始日志数据进行添加字段处理,得到日志数据;其中,日志数据包括标志位、原始日志数据和结尾字段;

判断模块200,用于判断日志数据的大小是否大于当前存储区域的剩余空间的大小;

第一存储模块300,用于若日志数据的大小小于或等于当前存储区域的剩余空间的大小,则将日志数据存入当前存储区域中;

第二存储模块400,用于若日志数据的大小大于当前存储区域的剩余空间的大小,则对当前存储区域的候补存储区域进行格式化操作,并在候补存储区域中存入日志数据。

应用本发明实施例提供的日志存储装置,获取原始日志数据,并对原始日志数据进行添加字段处理,得到日志数据;其中,日志数据包括标志位、原始日志数据和结尾字段。判断日志数据的大小是否大于当前存储区域的剩余空间的大小。若否,则将日志数据存入当前存储区域中。若是,则对当前存储区域的候补存储区域进行格式化操作,并在候补存储区域中存入日志数据。本装置采用直接存储日志数据的方法,不需要对日志数据添加过多的其他数据以生成日志文件,比现有技术基于文件系统的日志存储占用的存储空间更小,减少了占用的存储空间,降低了系统成本。

可选的,数据获取模块100,包括:

标志位放置单元,用于将标志位放置于日志数据的开头。

可选的,标志位为预设ascii码。

可选的,还包括:

排序模块,用于利用预设存储顺序对存储空间中的各个存储区域进行排序;

存储区域确定模块,用于将第一个存入日志数据的存储区域确定为第一存储区域,将最后一个存入日志数据的存储区域确定为最后存储区域。

可选的,排序模块,包括:

页排序单元,用于利用预设存储顺序对flash中的各个页进行排序。

可选的,还包括:

最后存储区域判断模块,用于判断当前存储区域是否为最后存储区域;

标志位更新模块,用于若当前存储区域为最后存储区域,则更新标志位,并将更新后的标志位确定为当前标志位。

可选的,还包括:

标志位获取模块,用于按照存储顺序从第一存储区域开始,获取每条日志数据中的标志位,并判断是否有相邻日志数据的标志位发生变化;

第一当前存储区域确定模块,用于若没有相邻日志数据的标志位发生变化,则将最后一个存入日志数据的存储区域确定为当前存储区域;

第二当前存储区域确定模块,用于若存在相邻日志数据的标志位发生变化,则将最后一条具有当前标志位的日志数据确定为最新日志数据,将存入最新日志数据的存储区域确定为当前存储区域。

实施例四:

下面对本发明实施例提供的日志存储设备进行介绍,下文描述的日志存储设备与上文描述的日志存储方法可相互对应参照。

请参考图8,图8为本发明实施例所提供的一种日志存储设备的结构示意图,该日志存储设备包括存储器和处理器,其中:

存储器10,用于存储计算机程序;

处理器20,用于执行计算机程序,以实现上述的日志存储方法。

实施例五:

下面对本发明实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的日志存储方法可相互对应参照。

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

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

以上对本发明所提供的日志存储方法、装置、设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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