一种日志的存储方法及装置与流程

文档序号:27683805发布日期:2021-12-01 00:36阅读:129来源:国知局
一种日志的存储方法及装置与流程

1.本技术实施例涉及计算机技术领域,具体涉及一种日志的存储方法及装置。


背景技术:

2.日志(log),是网络设备、系统及服务程序等在运行时产生的一种事件记录,而这每一条日志都记载着日期、时间、使用者及动作等相关操作的描述。在错误发生的情况下,日志数据记录的程序运行过程显得尤为重要。特别是当一些低概率问题出现时,日志可以有效地帮助开发人员跟踪定位问题根因。
3.在现有技术中,根据日志记录分散、单条数据量小、日志总数多的特点,通常会在运行程序中开辟一块缓存,在该缓存中存储日志信息,然后再将多条日志一次性存储进非易失性存储器中。
4.在这样的存储策略中,日志数据往往无法及时缓存中的日志存储到非易失性存储器中,其数据保存的完整性及有效性难以得到保障。


技术实现要素:

5.本技术提供一种日志的存储方法及装置,用以解决日志无法及时有效地进行存储的问题。具体方法如下:
6.第一方面,本技术提供一种日志的存储方法,包括:
7.监听运行在第一设备上的第一进程的第一状态、所述第一设备的电源模块的第二状态,其中,第一设备的易失性存储器中保存有所述第一进程生成的第一日志;若所述第一状态满足第一预设条件,和/或,所述第二状态满足第二预设条件,则在第一时间范围内将所述日志写入非易失性存储器;若所述第一状态不满足第一预设条件,且,所述第二状态不满足第二预设条件,则在所述日志的数据量超过第一阈值时将所述日志写入所述非易失性存储器,或者在预设时间将所述日志写入所述非易失性存储器。
8.在本方案中,通过监听各项日志的源进程以及设备的电源模块,第一设备及时调整日志的存储策略,并针对不同的情况,采用不同的日志写入方式,例如:在正常情况下,如第一状态不满足第一预设条件且第二状态不满足第二预设条件时,在日志的数据量超过第一阈值时将日志写入非易失性存储器,或者在预设时间将日志写入非易失性存储器,以减少对应存储介质的写操作,保护存储介质寿命;而在异常情况下,如第一状态满足第一预设条件和/或第二状态满足第二预设条件时,则调整存储策略,在第一时间范围内将日志写入非易失性存储器,以保证易失性存储器中的日志数据可完整存储至非易失性存储器中。如此,可以兼顾日志存储的可靠性和存储介质寿命。
9.可选的,所述第一预设条件包括:所述第一进程开始运行或结束运行。
10.通过本方式,当第一进程开始运行或结束运行时,第一设备可以及时将日志写入非易失性存储器中,避免第一进程开始运行或结束运行时易失性存储器中的日志数据丢失。
11.可选的,所述第二预设条件包括:所述第一设备的第一电源模块停止工作;和/或,所述第一设备的第二电源模块开始工作。
12.通过本方式,能够保证,在第一设备发生断电时,易失性存储器中的日志数据及时写入非易失性存储器中,避免日志信息的缺失。
13.可选的,所述易失性存储器保存有包括所述第一日志在内的多个日志;在第一时间范围内将所述日志写入非易失性存储器,包括:确定所述多个日志中每个日志对应的优先级;将所述多个日志按照优先级从高到低的顺序依次写入所述非易失性存储器。
14.通过本方式,对不同的日志依照其优先级顺序依次写入非易失性存储器中,将重要程度高的日志优先写入,尽可能保证关键日志信息的完整性。
15.可选的,所述优先级的高低与日志的级别的高低正相关。
16.通过本方式,级别更高的日志可以优先写入非易失性存储器,提高了关键日志写入的方法的可靠性,并尽可能保证关键日志的完整性。
17.可选的,所述多个日志中的每个日志中携带该日志对应的优先级信息;所述确定所述多个日志中每个日志对应的优先级,包括:从所述多个日志中的每个日志中读取该日志对应的优先级信息,根据所述优先级信息获得该日志对应的优先级。
18.通过本方式,可以从日志中读取该日志对应的优先级,便捷了日志优先级的确认。
19.可选的,所述电源模块包括第二电源模块;所述将所述多个日志按照优先级从高到低的顺序依次写入所述非易失性存储器,包括:在所述第二电源模块剩余电量达到阈值时,将所述多个日志按照优先级从高到低的顺序依次在第二时间范围内写入所述非易失性存储器。
20.通过本方式,监听第二电源模块的剩余电量,针对其剩余电量的不同,采用不同的时间范围来将日志写入非易失性存储器,提高了本方法实施的灵活性,更加确保了重要日志的快速写入。
21.第二方面,本技术提供一种日志的存储装置,包括:
22.处理模块,用于监听运行在第一设备上的第一进程的第一状态、所述第一设备的电源模块的第二状态;
23.存储模块,用于存储第一设备中第一进程生成的第一日志;当所述第一状态满足第一预设条件,和/或,所述第二状态满足第二预设条件,在第一时间范围内将所述日志写入非易失性存储器,还用于当所述第一状态不满足第一预设条件,且,所述第二状态不满足第二预设条件,在所述日志的数据量超过第一阈值时将所述日志写入所述非易失性存储器,或者在预设时间将所述日志写入所述非易失性存储器。
24.可选的,所述第一预设条件包括:所述第一进程开始运行或结束运行。
25.可选的,所述第二预设条件包括:所述第一设备的第一电源模块停止工作;和/或,所述第一设备的第二电源模块开始工作。
26.可选的,所述存储模块还用于,包括:保存包括所述第一日志在内的多个日志;在第一时间范围内将所述日志写入非易失性存储器,包括:确定所述多个日志中每个日志对应的优先级;将所述多个日志按照优先级从高到低的顺序依次写入所述非易失性存储器。
27.可选的,所述优先级的高低与日志的级别的高低正相关。
28.可选的,所述处理模块还用于,包括:所述多个日志中的每个日志中携带该日志对
应的优先级信息;所述确定所述多个日志中每个日志对应的优先级,包括:从所述多个日志中的每个日志中读取该日志对应的优先级信息,根据所述优先级信息获得该日志对应的优先级。
29.可选的,所述存储模块还用于,将所述多个日志按照优先级从高到低的顺序依次写入所述非易失性存储器,包括:在所述第二电源模块剩余电量达到阈值时,将所述多个日志按照优先级从高到低的顺序依次在第二时间范围内写入所述非易失性存储器。
30.第三方面,提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的易失性存储器和非易失性存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,使得所述装置通过执行第一方面或第一方面任一种可选的实施方式中所述的方法将所述易失性存储器中的数据写入所述非易失性存储器。
31.第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质用于存储指令,当所述指令被执行时,使如第一方面内所提供的任意一种的方法被实现。
32.本技术实施例中第二、第三以及第四方面中提供的一个或多个技术方案所具有的技术效果或优点,均可以由第一方面中提供的对应的一个或多个技术方案所具有的技术效果或优点对应解释。
附图说明
33.图1是本技术实施例提供的一种日志的存储方法的流程图;
34.图2是本技术实施例提供的一种具体的日志的存储方法的流程图;
35.图3是本技术实施例提供的另一种具体的日志的存储方法的流程图;
36.图4是本技术实施例提供的一种日志的存储装置的结构示意图;
37.图5是本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
38.下面通过附图以及具体实施例对本技术技术方案做详细的说明,应当理解本技术实施例以及实施例中的具体特征是对本技术技术方案的详细的说明,而不是对本技术技术方案的限定,在不冲突的情况下,本技术实施例以及实施例中的技术特征可以相互组合。
39.需要理解的是,在本技术实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。在本技术实施例的描述中“多个”,是指两个或两个以上。
40.本技术实施例中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
41.为了便于理解本技术实施例的方案,下面先介绍本技术实施例可能的应用场景。
42.本技术实施例可以应用于计算机设备中,如笔记本电脑、台式计算机以及服务器等,也可以应用于各类移动终端设备中,如手机、平板及其它可以运行各种程序的终端设备。以上设备仅为举例说明,本技术不做限制。
43.在这些各类设备中,各式程序及系统的运行,均会产生多种不同类型、大小、数量
的日志信息。这些日志中的每一行都记载着日期、时间、使用者及动作等相关操作的描述。
44.例如,当使用者在设备上进行一些操作时,这些日志通常会记录下使用者操作的一些相关内容,这些内容对系统安全工作人员相当有用。例如,出现对系统进行的进程间通信(inter

process communication,ipc)探测时,系统就会在日志里迅速地记下探测者探测时所用的网际互连协议(internet protocol,ip)地址、时间、用户名等,出现文件传输协议(file transfer protocol,ftp)探测后,就会在ftp日志中记下ip地址、时间、探测所用的用户名等。而当该设备上的程序及系统出现开始、结束或者运行出错等情况时,日志也会记录下这些各种情况的发生。
45.有关日志的存储,由于日志具有记录分散、单条数据量小、总数多的特点,如果将日志直接存储进非易失性存储器中,将会造成非易失性存储器需要大量的读写操作,减少了该非易失性存储器的寿命。所以,一般是将日志先存储到易失性存储器(random access memory,ram),然后再按照预设策略将ram中的数据存储到非易失性存储器(non

volatile memory,nvm)。
46.例如,在一种实施方式中,记录缓存(易失性存储器)中日志数量,当日志数量达到预设的上限后,将日志信息以一定的格式写入硬盘(非易失性存储器)中。
47.例如,还有一种实施方式,是预设一个缓冲区,将系统新产生的日志信息按时间顺序存储到该缓冲区中,按照设定的时间周期,缓存中的数据写入硬盘(非易失性存储器)。
48.上述两种实施方式中,通过将日志先存储至易失性存储器中,再以各自的存储策略,管理写入日志数据。但是两种存储策略较为简易、机械,在面对设备中不时出现的各种可能情况,例如,设备突然断电关机、日志源进程突然崩溃停止运行等,没有很好的策略进行应对。所以,目前日志的存储存在着易失性存储器中的日志在写入非易失性存储器时,数据的完整性及有效性难以得到保障的问题。
49.鉴于此,参见图1,是本技术实施例提供的一种日志的存储方法的流程图,下面将依据图1介绍本技术实施例的具体过程。
50.步骤s101:监听运行在第一设备上的第一进程的第一状态、第一设备的电源模块的第二状态,其中,第一设备的易失性存储器中保存有第一进程生成的日志。
51.在本技术实施例中,第一设备可以是台式计算机设备,具体也可以是其它网络设备,本技术不做限制。在该第一设备中,运行有多个计算机程序,这些计算机程序均会产生不同的日志,同时,第一设备中运行的操作系统也会产生不同的日志。所述第一设备的第一进程,可以是第一设备中正在运行的任意一计算机程序,也可以是该第一设备的操作系统。
52.应理解,第一状态有多种可能,本技术不做限制。例如,第一状态可以是第一进程正在运行中,或者是第一进程停止响应,又或者是第一进程运行结束。
53.应理解,第二状态有多种可能,本技术不做限制。例如,第二状态可以是所述电源模块正在工作,或者所述电源模块停止工作,又或者是所述电源模块突然断电等。
54.ram(易失性存储器),是个人计算机上的移动存储,用来存储和保存数据的。它在任何时候都可以读写,ram通常是作为操作系统或其他正在运行程序的临时存储介质。基于这种特性,第一进程生成的日志可以暂时性的存储进该易失性存储器中。与之相对的非易失性存储器是指断开电流,所存储的数据不会消失的电脑存储器。非易失性存储器中,依存储器内的数据是否能在使用电脑时随时改写为标准,可分为二大类产品,即只读存储器
(read

only memory,rom)和快闪存储器(flash memory),为便于理解,本技术实施例中的非易失性存储器以快闪存储器为例进行说明。
55.步骤s102:所述第一状态是否满足第一预设条件,以及,所述第二状态是否满足第二预设条件;若所述第一状态不满足第一预设条件,且,所述第二状态不满足第二预设条件,则执行s103a;若所述第一状态满足第一预设条件,和/或,所述第二状态满足第二预设条件,则执行s103b。
56.其中,第一预设条件包括但不限于:所述第一进程开始运行或结束运行。而满足第一预设条件的情况可能有多种,例如,第一进程出现无法响应而导致的进程结束,即为满足第一预设条件;又或者,第一进程被强制结束运行而导致了进程结束,也是满足了第一预设条件。还有其他可能出现的导致进程开始运行或结束运行的,也满足第一预设条件,本技术不做限制。
57.第二预设条件包括但不限于:所述第一设备的电源模块停止工作。
58.可选的,在本技术实施例中,第一设备中电源模块可以包括两个模块,分别是设备电源以及设备的电源备份单元。设备电源指的是第一设备内将普通市电转换为计算机可以使用的电压,并为第一设备内的各部件供电的电源模块,在本技术实施例中将其称为第一电源模块。而设备的电源备份单元,则是用于在第一设备异常断电时,为该第一设备继续提供可支持该设备进行一段时间内读写操作的电源模块,在本技术实施例中将其称为第二电源模块。例如,在笔记本电脑中,笔记本电脑的电源适配器可视为其第一电源模块,该设备的电池,则可视为第二电源模块。
59.因此,满足第二预设条件的情况可以是,因突然断电导致的第一电源模块停止工作,或者因关机而导致的第一电源模块停止工作,又或者因第一电源模块故障导致停止工作。也可以是,因设备电源模块切换,使得第二电源模块开始工作,又或者是第一电源模块突然断电而使得第二电源模块开始工作。
60.应理解,以上满足第一、第二预设条件的各情况仅为举例说明,本技术实施例对此不做限制。
61.步骤s103a:在所述日志的数据量超过第一阈值时将所述日志写入所述非易失性存储器,或者在预设时间将所述日志写入所述非易失性存储器。
62.其中,第一状态不满足第一预设条件且第二状态不满足第二预设条件的情况可以理解为:即第一设备中的系统及各程序正常运行,第一电源模块也正常供电,整个设备中没有出现突然崩溃或停止的进程,也没有出现断电或关机或重启的设备情况。因此,在这种情况下,第一设备是正常运行的,第一设备可以采用以下两种方式将易失性存储器中的日志写入非易失性存储器中。
63.方式1、当易失性存储器中存储的日志数量到达第一阈值时,将该些日志写入非易失性存储器中。例如,预设第一阈值为800条,当第一设备的第一状态不满足第一预设条件且第二状态不满足第二预设条件时,若易失性存储器中的日志数量达到了800条,那么将该些日志全部写入非易失性存储器中。
64.方式2、当到达预设时间时,将易失性存储器中的日志写入非易失性存储器中。例如,预设时间为1分钟,当第一设备的第一状态不满足第一预设条件且第二状态不满足第二预设条件时,那么,在距离上次将易失性存储器中的日志写入非易失性存储器的时间间隔
达到1分钟后,将易失性存储器中的日志写入非易失性存储器。
65.应理解,以上方式的举例均为说明具体实施例的实施方式,本技术并不对此做出限制。另外,在具体实现过程中,还可以进一步加入其它条件确定第一设备是否正常运行,申请不做限制。
66.步骤s103b:在第一时间范围内将所述日志写入非易失性存储器。
67.其中,所述第一状态满足第一预设条件,和/或,所述第二状态满足第二预设条件包括以下几种情况:
68.所述第一状态满足第一预设条件,而所述第二状态不满足第二预设条件;
69.所述第二状态满足第二预设条件,而所述第一状态不满足第一预设条件;
70.所述第一状态满足第一预设条件,且,所述第二状态满足第二预设条件。
71.在以上任一情况被满足时,则第一设备的运行都可以视为异常,所以可以在第一时间范围内将所述日志写入非易失性存储器。其中,在第一时间范围内将所述日志写入非易失性存储器的操作可以有多种实现方式,包括但不限于:
72.方式1、在第一时间范围内开始写入。例如,将第一时间预设为0.1秒,那么在该实施方式中,第一设备监听到上述任一情况时,将在0.1秒内做出反应,开始将存储在易失性存储器中的日志写入非易失性存储器中。
73.方式2、在第一时间范围内完成写入。例如,第一时间设置为1秒,在该实施方式中,第一设备监听到上述任一情况时,在1秒内将存储在易失性存储器中的日志全部写入非易失性存储器中。
74.方式3、在第一时间范围内开始写入并在第一时间范围内完成写入。例如,将第一时间设置为10秒,第一设备监听到上述任一情况时,在1秒内做出反应,开始将存储在易失性存储器中的日志写入非易失性存储器中,并在9秒内完成写入。
75.为了便于说明本技术实施例,在本技术中,主要以上述方式1为例。其中第一时间范围可以根据实际情况进行设定。如上述方式中采用的不同的第一时间范围进行举例说明。
76.应理解,上述第一时间范围的数值可以根据实际情况进行设定,只需要保证步骤s103b中的(即异常情况下)写入方式能够比步骤s103a中的(即正常情况下)写入方式更快即可。
77.在一种可能的实现方式中,可以设定第一时间范围的长度小于步骤s103a中方式2的时间周期。例如,在步骤s103a的方式2中,时间间隔为1分钟,那么,在本实现方式中,第一时间范围的长度可以设定为小于1分钟的任意需要的时间范围长度,如30秒、1秒或者是0.01秒等等。
78.进一步的,第一时间范围还可以针对不同的情况进行不同地设定。例如,当仅满足第一预设条件时,所述第一时间范围可以相对较长,其时间可以设定为1秒,即在1秒内将存储在易失性存储器中的日志开始写入非易失性存储器中。而在第一电源停止工作时,可以将第一时间设置为0.1秒或者更短,以保证日志写入的迅速及完整。应理解,上述举例仅为帮助理解本技术实施例,并不是对具体实施的限制。
79.应理解,在本方案中,还可以根据实际情况增加监听的状态,例如除了第一状态和第二状态之外,还可以监听第三状态,即设备是否将要关机或者是重启,又例如,监听第四
状态,即设备有无进行程序安装或卸载。相应的,s102中的条件对应增加对第三状态是否满足第三预设条件的判断以及对第四状态是否满足第四预设条件的判断。其中,第三预设条件为:设备进行关机或重启,第四预设条件为,设备进行安装或卸载程序。以上仅为举例说明,具体实施还可以其它的监听状态,本技术不做限制。
80.在本方案中,通过监听各项日志的源进程以及设备的电源模块,第一设备及时调整日志的存储策略,并针对不同的情况,采用不同的日志写入方式,例如:在正常情况下,如第一状态不满足第一预设条件且第二状态不满足第二预设条件时,在日志的数据量超过第一阈值时将日志写入非易失性存储器,或者在预设时间将日志写入非易失性存储器,以减少对应存储介质的写操作,保护存储介质寿命;而在异常情况下,如第一状态满足第一预设条件和/或第二状态满足第二预设条件时,则调整存储策略,在第一时间范围内将日志写入非易失性存储器,以保证易失性存储器中的日志数据可完整存储至非易失性存储器中。如此,可以兼顾日志存储的可靠性和存储介质寿命。
81.可选的,所述易失性存储器保存有包括第一日志在内的多个日志,在将所述多个日志写入非易失性存储器时,确定其中每个日志对应的优先级,将所述多个日志按照优先级从高到低的顺序依次写入所述非易失性存储器。
82.其中,所述优先级的高低可以与日志的级别的高低成正相关。而日志的级别是日志生成时自带的日志等级信息,例如,这些级别可以是:1、紧急,用于表示导致系统不可用的事故,属于最严重的日志级别;2、警告,用于表示必须马上处理的问题,紧急程度低于紧急;3、错误,用于表示运行时出现的错误,不必要立即进行修复;以及其它的日志级别。通过日志的级别,技术人员可以获取程序及系统的运行状况,以及各项情况的严重程度,是日志信息中不可或缺的部分。
83.通过本方式,在日志写入非易失性存储器的过程中,可以对不同优先级的日志进行针对性的写入,保证了关键日志写入的完整性。
84.可选的,在将日志存储在易失性存储器中时,还可以对日志数据进行结构化处理。其中,结构化处理包括:将一条日志信息,按照其不同字符串所代表的含义进行分类,将一条日志信息中的字符串分类为例如时间、级别、文件、事件等。
85.例如,第一设备生成的一条日志为[2021

05

14t17:13:05 error libcomm.a 18187 slot.cpp:39]cslot[3]create failed,那么将这条日志进行结构化处理后的形式则为:
[0086]
time

>2021

05

14t17:13:05 level

>error module:libcomm.a
[0087]
file

>slot.cpp line

>39 content

>cslot[3]create failed
[0088]
通过该种处理方式,可以实现日志的快速定位及分析,并且方便了对日志进行优先级与日志级别匹配的这一过程。
[0089]
可选的,所述多个日志中的每个日志中携带该日志对应的优先级信息;所述确定所述多个日志中每个日志对应的优先级,包括:从所述多个日志中的每个日志中读取该日志对应的优先级信息,根据所述优先级信息获得该日志对应的优先级。
[0090]
例如,日志的级别由高到低可以分为五个等级:致命、严重、告警、信息、调试,那么相对应的日志优先级也可以由高到低分为第一优先级至第五优先级。而对于结构化处理后的日志,其日志等级的读取也更为快速便捷。
[0091]
通过该种方式,日志的优先级可以由日志信息读取确认,简化了日志优先级设定的过程,可以使设备对“将重要日志(即优先级高)及时写入非易失性存储器中”这一过程的反应更加迅速。
[0092]
可选的,在监听第二电源模块时,同时监听第二电源模块的剩余电量,当该剩余电量小于或等于第二阈值时,将所述多个日志按照优先级从高到低的顺序依次在第二时间范围内写入所述非易失性存储器。
[0093]
其中,剩余电量的第二阈值可以预先设置为50%或是30%,在第二电源模块达到该第二阈值时,将日志按优先级写入。
[0094]
通过本方式,可以在第二电源模块的剩余电量较少时,优先保证重要日志的及时写入及存储,避免因一般日志的挤占导致重要日志信息的丢失。
[0095]
可选的,第二时间范围与第二电源模块的剩余电量第二阈值相关联。例如,当第二电源模块的剩余电量达到80%时,将所述多个日志按照优先级从高到低的顺序依次在1秒内开始写入所述非易失性存储器;当第二电源模块的剩余电量达到30%时,则将所述多个日志按照优先级从高到低的顺序依次在0.1秒内开始写入所述非易失性存储器。应理解,上述举例仅为帮助理解本技术实施例,并不是对具体实施的限制。
[0096]
通过本方式,可以尽可能保存多的日志信息,在第二电源模块剩余电量与第二时间范围相关的情况下,剩余电量越低,设备做出反应的时间越快,就越能及时将日志写入非易失性存储器中,提高了本方案日志信息存储的可靠性。
[0097]
应理解,以上各个实施方式可以相互结合以实现不同效果。
[0098]
为了便于更加清楚地理解本技术技术方案,接下来举例两个更加详细的实施例进行。
[0099]
实施例一:
[0100]
监听第一设备内第一状态、第二状态、第三状态以及第四状态,判断该第一状态、第二状态、第三状态以及第四状态是否满足第一预设条件、第二预设条件、第三预设条件以及第四预设条件,然后根据其满足的条件,将易失性存储器中的日志数据写入非易失性存储器中。参见图2,该实施例具体步骤如下:
[0101]
步骤s201:将日志结构化处理后存储在易失性存储器中。
[0102]
步骤s202:监听设备的第一状态、第二状态、第三状态、第四状态。
[0103]
其中,第一状态包括:第一进程正在运行中,或者第一进程停止响应,又或者第一进程运行结束。第二状态包括:所述电源模块正在工作,或者所述电源模块停止工作,又或者所述电源模块突然断电等。第三状态包括:设备是否将要关机或者是重启,第四状态包括:设备有无进行程序安装或卸载。
[0104]
步骤s203:判断设备是否第一状态不满足第一预设条件且第二状态不满足第二预设条件且第三状态不满足第三预设条件且第四状态不满足第四预设条件;若是,则执行步骤s204a,若否,则执行步骤s204b。
[0105]
在该步骤的判断条件中,若四个预设条件均不满足,即可认为该第一设备正在正常工作中,无突发情况(例如进程崩溃、突然断电、设备重启等),则执行步骤s204a。若判断出并没有达到四个预设条件均不满足的情况,那么,在这种情况中,可能出现的情况有:或第一状态满足第一预设条件,或第二状态满足第二预设条件,或第三状态满足第三预设条
件,或第四状态满足第四预设条件,或是任意几种预设条件的组合被满足。
[0106]
步骤s204a:判断距离上次将日志写入非易失性存储器中的时间间隔是否达到1分钟,若是,执行步骤s204b,若否,重复步骤s201。
[0107]
在该步骤中,在设备正常工作的状态下,易失性存储器中的日志将被周期性地写入非易失性存储器中。
[0108]
步骤s204b:将存储在易失性存储器中的日志写入非易失性存储器中。
[0109]
在该步骤中,第一设备的任意状态满足了预设条件,则需要第一设备将存储在易失性存储器中的日志及时写入非易失性存储器中。
[0110]
在图2所示的实施例中,正常状态下,将易失性存储器中的日志周期性地写入非易失性存储器中,减少了对应存储介质的写操作,保护了存储介质寿命。在非正常状态下,及时将易失性存储器中的日志写入非易失性存储器中,有效地保证了易失性存储器中的日志数据可完整存储至非易失性存储器中。这样可以兼顾日志存储的可靠性和存储介质寿命。
[0111]
实施例二:监听第一设备内第一状态、第二状态、以及第三状态,判断该第一状态、第二状态以及第三状态是否满足第一预设条件、第二预设条件以及第三预设条件,然后根据其满足的条件,采取不同的存储策略,将易失性存储器中的日志数据写入非易失性存储器中。参见图3,该实施例具体步骤如下:
[0112]
步骤s301:将日志结构化处理后存储在易失性存储器中。
[0113]
步骤s302:监听设备的第一状态、第二状态、第三状态。
[0114]
其中,第一状态包括:第一进程正在运行中,或者第一进程停止响应,又或者第一进程运行结束。第二状态包括:所述电源模块正在工作,或者所述电源模块停止工作,又或者所述电源模块突然断电等。第三状态包括:设备是否将要关机或者是重启。
[0115]
步骤s303:判断第一状态是否满足第一预设条件,若是,执行步骤s304a,若否,执行步骤s304b。
[0116]
步骤s304a:将存储在易失性存储器中的日志,按优先级顺序,在第一时间范围内写入非易失性存储器中。
[0117]
步骤s304b:判断第二状态是否满足第二预设条件,若是,执行步骤s305a,若否,执行步骤s305b。
[0118]
步骤s305a:判断第二电源模块剩余电量是否达到第二阈值,若是,则执行步骤s306a,若否,则执行步骤s306b。步骤s306a:在第二时间范围内,将存储在易失性存储器中的日志,按优先级顺序,写入非易失性存储器中。步骤s306b:在第一时间范围内,将存储在易失性存储器中的日志,按优先级顺序,写入非易失性存储器中。
[0119]
步骤s305b:判断第三状态是否满足第三预设条件。若是,则执行步骤s306a,若否,则执行步骤s306b。
[0120]
步骤s306a:将存储在易失性存储器中的日志,按优先级顺序,在第一时间范围内写入非易失性存储器中。
[0121]
步骤s306b:判断易失性存储器中存储的日志数量是否达到第一阈值,若是,则执行步骤s307,若否,则重复步骤s301。
[0122]
步骤s307:将存储在易失性存储器中的日志写入非易失性存储器中。
[0123]
在图3所示的实施例中,通过监听设备的不同状态,第一设备及时调整日志的存储
策略,并针对不同的情况,采用不同的日志写入方式,既保证了存储器的使用寿命,又保证了关键日志地及时写入,兼顾了日志存储的可靠性以及存储介质的存储寿命。
[0124]
以上介绍了本技术实施例提供的方法,以下介绍本技术实施例提供的装置。
[0125]
参见图4,本技术实施例提供一种日志存储的装置,该装置可以是上文中的第一设备或者是该第一设备中的芯片或集成电路等,该装置包括用于执行图1~图3所示的方法的模块/单元/技术手段。
[0126]
示例性的,该装置包括:
[0127]
处理模块401,用于监听运行在第一设备上的第一进程的第一状态、所述第一设备的电源模块的第二状态;
[0128]
存储模块402,用于存储第一设备中第一进程生成的第一日志;当所述第一状态满足第一预设条件,和/或,所述第二状态满足第二预设条件,在第一时间范围内将所述日志写入非易失性存储器,还用于当所述第一状态不满足第一预设条件,且,所述第二状态不满足第二预设条件,在所述日志的数据量超过第一阈值时将所述日志写入所述非易失性存储器,或者在预设时间将所述日志写入所述非易失性存储器。
[0129]
应理解,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
[0130]
作为上述装置一种可能的产品形态,参见图5,本技术实施例还提供一种电子设备500,包括:
[0131]
至少一个处理器501;以及与所述至少一个处理器501通信连接的通信接口503;所述至少一个处理器501通过执行易失性存储器502以及非易失性存储器505存储的指令,使得所述电子设备500通过所述通信接口503执行上述方法实施例中任一设备所执行的方法步骤。
[0132]
可选的,所述存储器502位于所述电子设备500之外。
[0133]
可选的,所述电子设备500包括所述存储器502,所述存储器502与所述至少一个处理器501相连,所述存储器502存储有可被所述至少一个处理器501执行的指令。
[0134]
其中,所述处理器501和所述存储器502可以通过接口电路耦合,也可以集成在一起,这里不做限制。
[0135]
本技术实施例中不限定上述处理器501、存储器502以及通信接口503之间的具体连接介质。本技术实施例在图5中以处理器501、易失性存储器502、通信接口503以及非以实现存储器505之间通过总线504连接,总线在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0136]
应理解,本技术实施例中提及的处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
[0137]
示例性的,处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、
分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0138]
应理解,本技术实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read

only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data eate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
[0139]
需要说明的是,当处理器为通用处理器、dsp、asic、fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)可以集成在处理器中。
[0140]
应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0141]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质用于存储指令,当所述指令被执行时,使得计算机执行上述图1~图3所示的方法步骤。
[0142]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0143]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0144]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0145]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0146]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1