一种日志信息的动态存储系统及方法

文档序号:6598072阅读:140来源:国知局
专利名称:一种日志信息的动态存储系统及方法
技术领域
本发明涉及文件存储技术,尤其涉及一种日志信息的动态存储系统及方法。
背景技术
系统日志信息是一种突发性的信息,可以反映和记录系统的工作状态。常见的日
志信息保存方式之一是将日志信息保存到非易失性存储器的系统日志文件中。当系统出现
了异常甚至故障而需要系统复位时,通过阅读非易失性存储器中保存的系统日志文件,可
以了解系统复位前的工作状态,为排查系统故障或者异常出现的原因提供参考。 闪速(FLASH)存储器是通讯系统中常用的非易失性存储器,FLASH存储器的寿命
通常用可擦写次数来衡量,向FLASH存储器中写日志文件的过程就是一次擦写的过程,因
此频繁地擦写日志文件,必然会带来FLASH存储器容易损坏,縮短存储器甚至系统使用寿
命等问题,加大了系统的故障率。 静态日志文件存储方法是指在需要保存日志信息时,通过管理员手动执行命令将 日志信息写入FLASH存储器等非易失性存储器的方式。静态日志文件存储方法虽然可以减 少FLASH存储器等的擦写次数,但是当系统发生异常甚至故障需要系统复位时,存储器中 保存的日志信息可能并不包括导致异常甚至故障的原因,实际上并不利于故障的排查和分 析。 与静态日志文件不同的是,动态日志文件存储方法是系统每产生一个日志信息, 就将新产生的日志信息写入到FLASH存储器等之中的日志文件。根据前面的介绍,写日志 文件的过程就是擦写存储器的过程,因此对于日志信息产生的频率较高的系统,现有动态 日志文件存储方法至少存在着需要频繁擦写存储器这一缺陷。

发明内容
本发明所要解决的技术问题,在于需要提供一种日志信息的动态存储系统及方 法,以降低存储日志信息过程中擦写存储器的频率。 为了解决上述技术问题,本发明首先提供了一种日志信息的动态存储方法,包 括 预设一缓冲区; 将系统新产生的日志信息按时间顺序存储到所述缓冲区中; 将所述缓冲区中的日志信息写入非易失性存储器的日志文件中。 优选地,启动所述动态存储时,如果所述非易失性存储器中含有历史日志信息,则
将所述新产生的日志信息存储到所述缓冲区之前,进一步提取所述历史日志信息并存储到
所述缓冲区中。 优选地,提取所述历史日志信息时,按照时间顺序将所述历史日志信息存储到所 述缓冲区中,其中时间上最新的历史日志信息存储在所述缓冲区的头部;每当存储所述新 产生的日志信息时,将所述缓冲区中的日志信息向所述缓冲区的尾部移动,在所述缓冲区的头部留出所述新产生的日志信息大小的预留空间,并将所述新产生的日志信息存储到所 述预留空间中。 优选地,提取所述历史日志信息时,按照时间顺序将所述历史日志信息存储到所 述缓冲区中,其中时间上最老的历史日志信息存储在所述缓冲区的头部;每当存储所述新 产生的日志信息时,在所述缓冲区中时间上最新的日志信息后连续存储所述新的日志信 息。 优选地,根据日志写入规则,或者在所述系统的日志功能无效时,将所述缓冲区中 的日志信息写入所述日志文件中。 为了解决上述技术问题,本发明还提供了一种日志信息的动态存储系统,包括
设置模块,用于设置一缓冲区; 存储模块,用于将系统新产生的日志信息按时间顺序存储到所述缓冲区中;
写入模块,用于将所述缓冲区中的日志信息写入非易失性存储器的日志文件中。
优选地,该系统进一步包括 判断模块,用于在启动所述动态存储时判断所述非易失性存储器中是否含有历史 日志信息; 提取模块,用于所述判断模块在启动所述动态存储时判断出所述非易失性存储器 中含有历史日志信息时,将所述新产生的日志信息存储到所述缓冲区之前,提取所述历史 日志信息; 其中,所述存储模块进一步用于将所述历史日志信息存储到所述缓冲区中。
优选地,该系统进一步包括 移动模块,用于将所述缓冲区中的日志信息向所述缓冲区的尾部移动,在所述缓 冲区的头部留出所述新产生的日志信息大小的预留空间;
其中, 所述存储模块,用于按照时间顺序将所述历史日志信息存储到所述缓冲区中,其 中时间上最新的日志信息存储在所述缓冲区的头部,并用于将所述新产生的日志信息存储 到所述预留空间中。 优选地,所述存储模块,用于按照时间顺序将所述历史日志信息存储到所述缓冲 区中,其中时间上最老的日志信息存储在所述缓冲区的头部,并用于在所述缓冲区中时间 上最新的日志信息后连续存储所述新产生的日志信息。 优选地,所述写入模块用于根据日志写入规则,或者在所述系统的日志功能无效 时,将所述缓冲区中的日志信息写入所述日志文件中。 与现有技术相比,本发明提出的日志信息动态存储技术,其中至少一种实施方式 通过严格按照时间顺序缓存日志信息,然后再一次性地写入到存储器中,解决了现有动态 日志信息存储过程中存储器的擦写过于频繁的问题,减少了存储器出现故障的概率,较好 地延长了存储器以及系统的使用寿命。 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利 要求书以及附图中所特别指出的结构来实现和获得。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实
施例一起用于解释本发明,并不构成对本发明的限制。在附图中 图1为本发明方法第一实施例的流程示意图; 图2为本发明方法第二实施例的流程示意图; 图3为本发明日志信息的动态存储系统实施例组成示意图。
具体实施例方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用
技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。 需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结
合,均在本发明的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机
可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况
下,可以以不同于此处的顺序执行所示出或描述的步骤。 本发明的核心思想是将系统新产生的日志信息按时间顺序存储到预设的一缓冲 区中,然后根据日志写入规则(如写入时机等),或者在系统的日志功能无效时,将缓冲区 中的日志信息写入到存储器的日志文件中。其中该日志写入规则,比如为日志写入周期, 每到一个日志写入周期时,自动将缓冲区中的日志信息写入到FLASH存储器中的日志文件 中;该日志写入周期的长短,可以根据实际应用情况由FALSH存储器的寿命和系统的设计 寿命等因素权衡考虑来设定,而且,该日志写入周期可以是定长的,也可以是不定长的。
图1为本发明方法第一实施例的流程示意图。需要说明的是,在本实施例中,该非 易失性存储器为FLASH存储器。在其它实施例中,也可以是铁电随机存取存储器(FeRAM) 或者电可擦写可编程只读存储器(EEPR0M)等其它类型的非易失性存储器。如图l所示,该 第一实施例主要包括如下步骤 步骤S110,开启系统日志动态存储功能时,FLASH存储器中存储有日志文件的历 史日志信息,则提取该FLASH存储器中日志文件的历史日志信息,按照历史日志信息的时 间顺序,将历史日志信息存储到预设的系统内存中一确定大小的定长缓冲区中,其中时间 上最新的历史日志信息存储在该定长缓冲区的头部,相应地时间上最老的历史日志信息存 储在最远离头部的缓冲区的空间;当然,时间上最老的历史日志信息距离该定长缓冲区的 尾部最近; 该定长缓冲区的大小远大于日志文件的大小的上限值,该大小是根据FALSH存储 器空间大小和实际应用相结合确定的; 步骤S120,系统日志动态存储功能开启情况下,每当产生新的日志信息,将定长缓 冲区中所有的日志信息向定长缓冲区的尾部移出新产生的日志信息大小的空间,并将该新 产生的日志信息存储到定长缓冲区移出的空间中;其中移出的空间位于该定长缓冲区的头 部; 在本步骤中,如果存储该新产生的日志信息之前,定长缓冲区中剩余空间不能完 整存储该新产生的日志信息,则定长缓冲区的尾部位置的一个或者一个以上的日志信息会 被删除;
本步骤的存储方式,保证了每个新产生的日志信息,都存储在该定长缓冲区的头 部,保证了整个定长缓冲区中的日志信息是严格按照时间顺序存储的,避免了在存储日志 信息时产生时间混乱的问题; 步骤S130,在每个日志写入周期,检查该定长缓冲区中是否存储有新产生的日志 信息,是则转步骤S140,否则转步骤S150 ; 步骤S140,将定长缓冲区中的日志信息写入到FALSH存储器的日志文件中,然后 转步骤S150 ; 步骤S150,在系统日志功能关闭、任何原因造成的系统复位或者系统掉电等系统 日志功能无效时(对于系统掉电,则为掉电保护电路失效前),检查该定长缓冲区中是否存 储有新产生的日志信息,是则转步骤S160,否则结束; 步骤S160,将定长缓冲区中的日志信息写入到FALSH存储器的日志文件中,然后 结束。 上述步骤SllO中,如果FLASH存储器中没有历史日志信息,则步骤S120中直接将 新产生的日志信息从该定长缓冲区的头部开始,按照时间顺序依次存储。
在步骤S120及步骤S140中,在定长缓冲区中存入新产生的日志信息后,都设置一 个新日志信息标志位,在本实施例中是通过该标志位的值为TRUE来表示最近一个日志写 入周期有新的日志信息产生,为FALSE来表示最近一个日志写入周期没有新的日志信息产 生。在步骤S130及步骤S150中,根据该新日志信息标志位来检查定长缓冲区中是否存储 有新产生的日志信息。相应地,在步骤S140及步骤S160中,在日志信息写入到FALSH存储 器中的日志文件中之后,将新日志信息标志位的值置为FALSE。 图2为本发明方法第二实施例的流程示意图。图2所示的实施例主要包括如下步 骤 步骤S210,开启系统日志动态存储功能时,FLASH存储器中存储有日志文件的历 史日志信息,则提取FLASH存储器中日志文件的历史日志信息,按照历史日志信息的时间 顺序将历史日志信息存储到预设的系统内存的环形缓冲区中,其中时间上最老的历史日志 信息作为该环形缓冲区的头部,相应地时间上最新的历史日志信息作为该环形缓冲区的尾 部;显示历史日志信息时,从该环形缓冲区的头部开始显示,所以历史日志信息显示时会严 格按照时间先后顺序进行显示; 该环形缓冲区的大小远大于日志文件的大小的上限值,该大小是根据FALSH存储 器空间大小和实际应用相结合确定的; 步骤S220,系统日志动态存储功能开启情况下,每当产生新的日志信息,将新产生 的日志信息以字符串的形式添加到该环形缓冲区的尾部之后,当然一般而言是在之前的数 据后连续存储;该新产生的日志信息即为该环形缓冲区当前的尾部;如果存储该新产生的 日志信息时覆盖了该环形缓冲区中原有的数据,则需要将该环形缓冲区中时间上最老的日 志信息作为该环形缓冲区当前的头部; 在本实施例中,新产生的日志信息直接添加到环形缓冲区的尾部,不必像前述的 定长缓冲区那样要为新产生的日志信息移出空间而移动所有的日志信息,相比较而言,环 形缓冲区在添加日志信息时不需要移动缓冲区中的数据,节约了系统资源,而且也不用判 断环形缓冲区是否填满,因为环形缓冲区是一个环形的存储结构,填满之后直接覆盖缓冲区头部老的日志信息即可,因此处理效率也更高; 环形存储器的数据存储方式,也保证了整个环形缓冲区中从头部到尾部的日志信
息是严格按照时间顺序存储的,避免了在存储日志信息时产生时间混乱的问题; 步骤S230,在每个日志写入周期,检查该环形缓冲区中是否存储有新产生的日志
信息,是则转步骤S240,否则转步骤S250 ; 步骤S240,将环形缓冲区中的日志信息写入到FALSH存储器的日志文件中,结束;
步骤S250,在系统日志功能关闭、任何原因造成的系统复位或者系统掉电等系统日志功能无效时(对于系统掉电,则为掉电保护电路失效前),检查该环形缓冲区中是否存储有新产生的日志信息,是则转步骤S260,否则结束; 步骤S260,将环形缓冲区中的日志信息写入到FALSH存储器中的日志文件中,然后结束。 上述步骤S210中,如果FLASH存储器中没有历史日志信息,则步骤S220中直接将新产生的日志信息从该环形缓冲区的头部开始,按照时间顺序依次存储。
在步骤S220中,在环形缓冲区中存入新产生的日志信息后,都设置一个新日志信息标志位,在本实施例中是通过该标志位的值为TRUE来表示最近一个日志写入周期有新的日志信息产生,为FALSE来表示最近一个日志写入周期没有新的日志信息产生。在步骤S230及步骤S250中,根据该新日志信息标志位来检查环形缓冲区中是否存储有新产生的日志信息。相应地,在步骤S240及步骤S260中,在日志信息写入到FALSH存储器中的日志文件中之后,将新日志信息标志位的值置为FALSE。 需要说明的是,图1所示实施例中的定长缓冲区也可以是一环形的缓冲区,与图2所示实施例中环形缓冲区的区别是存储新产生的日志信息时,采用不同的存储方式,即图1所示实施例是整体将缓冲区中已有的日志信息往后部移动,即那个新产生的日志信息存储在缓冲区的头部,而图2所示实施例是在之前存储的日志信息后连续存储新产生的日志信息。 图3是本发明动态存储系统实施例的组成示意图。结合图1及图2所示方法实施例,图3所示的系统实施例主要包括设置模块310、缓冲区320、存储模块330以及写入模块340,其中 设置模块310,用于设置该缓冲区320,优选地,该缓冲区320设在系统内存中;
存储模块330,与该缓冲区320及提取模块370相连,用于将该系统新产生的日志信息按时间顺序存储到该缓冲区320中;如果提取模块370从非易失性存储器(如FLASH存储器)350中提取到历史日志信息,则将该历史日志信息存储到缓冲区320中;
写入模块340,与该缓冲区320相连,用于根据日志写入规则,或者在系统的日志功能无效时,将缓冲区320中的日志信息写入日志文件中将该缓冲区320中的日志信息写入非易失性存储器350的日志文件中; 判断模块360,用于在启动系统的动态存储时判断该非易失性存储器350中是否含有日志文件的历史日志信息; 提取模块370,与该缓冲区320及该非易失性存储器350相连,用于该判断模块360在系统启动该动态存储时判断出该非易失性存储器350中含有历史日志信息时,将该新产生的日志信息存储到该缓冲区320之前,提取该历史日志信息;
移动模块380,用于将该缓冲区320中的日志信息向该缓冲区320的尾部移动,在该缓冲区320的头部留出该新产生的日志信息大小的预留空间。 对应于图1所示方法第一实施例,该存储模块330用于按照时间顺序将该历史日志信息存储到该缓冲区320中,其中时间上最新的日志信息存储在该缓冲区320的头部,并用于将该新产生的日志信息存储到该预留空间中。 其中,该提取模块320提取该历史日志信息时,按照所提取的历史日志信息的时间顺序将所提取的日志信息存储到该缓冲区320中,其中时间上最新的日志信息存储在该缓冲区320的头部。 对应于图2所示方法第二实施例,该存储模块330用于按照时间顺序将该历史日
志信息存储到该缓冲区320中,其中时间上最老的日志信息存储在该缓冲区320的头部,并
用于在该缓冲区中时间上最新的日志信息后连续存储该新产生的日志信息。 其中,该提取模块320提取该历史日志信息时,按照所提取的历史日志信息的时
间顺序将所提取的历史日志信息存储到该缓冲区320中,其中时间上最老的日志信息存储
在该缓冲区320的头部。 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。另外,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。 虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
权利要求
一种日志信息的动态存储方法,其特征在于,包括预设一缓冲区;将系统新产生的日志信息按时间顺序存储到所述缓冲区中;将所述缓冲区中的日志信息写入非易失性存储器的日志文件中。
2. 如权利要求l所述的方法,其特征在于启动所述动态存储时,如果所述非易失性存储器中含有历史日志信息,则将所述新产 生的日志信息存储到所述缓冲区之前,进一步提取所述历史日志信息并存储到所述缓冲区 中。
3. 如权利要求2所述的方法,其特征在于提取所述历史日志信息时,按照时间顺序将所述历史日志信息存储到所述缓冲区中, 其中时间上最新的历史日志信息存储在所述缓冲区的头部;每当存储所述新产生的日志信息时,将所述缓冲区中的日志信息向所述缓冲区的尾部 移动,在所述缓冲区的头部留出所述新产生的日志信息大小的预留空间,并将所述新产生 的日志信息存储到所述预留空间中。
4. 如权利要求2所述的方法,其特征在于提取所述历史日志信息时,按照时间顺序将所述历史日志信息存储到所述缓冲区中, 其中时间上最老的历史日志信息存储在所述缓冲区的头部;每当存储所述新产生的日志信息时,在所述缓冲区中时间上最新的日志信息后连续存 储所述新的日志信息。
5. 如权利要求1所述的方法,其特征在于根据日志写入规则,或者在所述系统的日志功能无效时,将所述缓冲区中的日志信息 写入所述日志文件中。
6. —种日志信息的动态存储系统,其特征在于,包括 设置模块,用于设置一缓冲区;存储模块,用于将系统新产生的日志信息按时间顺序存储到所述缓冲区中; 写入模块,用于将所述缓冲区中的日志信息写入非易失性存储器的日志文件中。
7. 如权利要求6所述的系统,其特征在于,该系统进一步包括判断模块,用于在启动所述动态存储时判断所述非易失性存储器中是否含有历史日志 信息;提取模块,用于所述判断模块在启动所述动态存储时判断出所述非易失性存储器中含 有历史日志信息时,将所述新产生的日志信息存储到所述缓冲区之前,提取所述历史日志 信息;其中,所述存储模块进一步用于将所述历史日志信息存储到所述缓冲区中。
8. 如权利要求7所述的系统,其特征在于,该系统进一步包括移动模块,用于将所述缓冲区中的日志信息向所述缓冲区的尾部移动,在所述缓冲区 的头部留出所述新产生的日志信息大小的预留空间; 其中,所述存储模块,用于按照时间顺序将所述历史日志信息存储到所述缓冲区中,其中时 间上最新的日志信息存储在所述缓冲区的头部,并用于将所述新产生的日志信息存储到所述预留空间中。
9. 如权利要求7所述的系统,其特征在于所述存储模块,用于按照时间顺序将所述历史日志信息存储到所述缓冲区中,其中时 间上最老的日志信息存储在所述缓冲区的头部,并用于在所述缓冲区中时间上最新的日志 信息后连续存储所述新产生的日志信息。
10. 如权利要求6所述的系统,其特征在于所述写入模块用于根据日志写入规则,或者在所述系统的日志功能无效时,将所述缓 冲区中的日志信息写入所述日志文件中。
全文摘要
本发明公开了一种日志信息的动态存储系统及方法,以降低存储日志信息过程中擦写存储器的频率。其中该方法主要包括预设一缓冲区;将系统新产生的日志信息按时间顺序存储到所述缓冲区中;将所述缓冲区中的日志信息写入非易失性存储器的日志文件中。与现有技术相比,本发明提出的日志信息动态存储技术通过严格按照时间顺序缓存日志信息,然后再一次性地写入到存储器中,解决了现有动态日志信息存储过程中存储器的擦写过于频繁的问题,较好地延长了存储器以及系统的使用寿命。
文档编号G06F11/34GK101788948SQ201010108170
公开日2010年7月28日 申请日期2010年2月5日 优先权日2010年2月5日
发明者陈东华 申请人:瑞斯康达科技发展股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1