一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种日志存储方法、装置和存储介质与流程

2022-02-25 20:27:07 来源:中国专利 TAG:


1.本技术属于计算机技术领域,尤其涉及一种日志存储方法、装置和存储介质。


背景技术:

2.嵌入式产品的日志文件一般存储于flash存储器中。当嵌入式产品在运行过程中生成大量的日志文件时,flash存储器的存储空间无法满足大量的日志文件的存储需求。
3.为了解决上述问题,目前通常采取增加flash存储器的容量的方法,以满足大量的日志文件的存储需求。
4.但是,这种增加flash存储器的容量的方法,会极大的提高成本。因此,如何使嵌入式产品以合理的方式存储日志文件成为亟待解决的问题。


技术实现要素:

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.图1为本技术实施例提供的一种日志存储系统的结构示意图;
32.图2为本技术实施例提供的通信装置的一种硬件结构示意图;
33.图3为本技术实施例提供的通信装置的又一种硬件结构示意图;
34.图4为本技术实施例提供的一种日志存储方法的流程示意图一;
35.图5为本技术实施例提供的一种日志存储方法的流程示意图二;
36.图6为本技术实施例提供的一种日志存储方法的流程示意图三;
37.图7为本技术实施例提供的一种日志存储方法的流程示意图四;
38.图8为本技术实施例提供的一种日志存储方法的流程示意图五;
39.图9为本技术实施例提供的一种日志存储装置的结构示意图。
具体实施方式
40.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
41.需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
42.为了便于清楚描述本技术实施例的技术方案,在本技术实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。
43.此外,本技术实施例和权利要求书及附图中的术语“包括”和“具有”不是排他的。例如,包括了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,还可以包括没有列出的步骤或模块。
44.如背景技术中所述,目前通常采取增加flash存储器的容量的方法,以满足大量的日志文件的存储需求。
45.但是,这种增加flash存储器的容量的方法,会极大的提高成本。因此,如何使嵌入式产品以合理的方式存储日志文件成为亟待解决的问题。
46.针对上述问题,本技术实施例提供了一种日志存储方法,在接收嵌入式产品发送的日志信息后,可以从日志信息中提取用于标识日志信息的日志参数,并将日志参数存储于与嵌入式产品对应的第一存储设备。由于日志参数的存储占用空间小于日志信息的存储占用空间,因此,本技术可以减少存储日志信息所占用的空间,可以使与嵌入式产品对应的第一存储设备更合理地存储日志文件。
47.该日志存储方法适用于日志存储系统。图1示出了该日志存储系统100的一种结构。如图1所示,该日志存储系统100包括:日志存储装置101、嵌入式产品102和服务器103。日志存储装置101可以和嵌入式产品102之间通信连接,还可以和服务器103之间通信连接。嵌入式产品102和服务器103之间通信连接。
48.可选的,图1中的日志存储装置101可以是服务器103内的功能模块,也可以是与服务器103独立设置,用于实现日志信息的存储和调用的电子设备。
49.可选的,当日志存储装置101是与服务器103独立设置,用于实现日志信息的存储和调用的电子设备时,该电子设备可以是终端。该终端为指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(radio access network,ran)与一个或多个核心网进行通信。无线终端可以是移动终端,如具有移动终端的计算机,也可以是便携式、袖珍式、手持式、计算机内置的移动装置,它们与无线接入网交换语言和/或数据,例如,手机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,pda)。本技术实施例对此不作任何限制。
50.可选的,当日志存储装置101是与服务器103独立设置,用于实现日志信息的存储
和调用的电子设备时,该电子设备还可以是服务器。当该电子设备为服务器时,该电子设备可以是服务器103内部用于进行日志存储的功能模块,也可以与服务器103相互独立设置的独立服务器,本技术对此不作具体限定。
51.为了便于理解,本技术主要以日志存储装置101和服务器103独立设置为例进行说明。
52.容易理解的是,当日志存储装置101为服务器103内部的功能模块时,日志存储装置101和服务器103之间的通信方式为服务器内部模块之间的通信。这种情况下,二者之间的通信流程与“日志存储装置101和服务器103相互独立的情况下,二者之间的通信流程”相同。
53.可选的,图1中的嵌入式产品102可以是面向特定应用的嵌入式中央处理器(central processing unit,cpu),通常工作在为特定用户群设计的系统中,具有低功耗、体积小、集成度高等特点,能够把通用cpu中许多由板卡完成的任务集成在芯片内部。
54.服务器103用于收集并向日志存储装置101提供嵌入式产品的源代码等信息。
55.可选的,服务器103可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本技术实施例对此不作任何限制。
56.日志存储系统100中的日志存储装置101、嵌入式产品102和服务器103的基本硬件结构类似,都包括图2或图3所示通信装置所包括的元件。下面以图2和图3所示的通信装置为例,介绍日志存储装置101、嵌入式产品102和服务器103的硬件结构。
57.如图2所示,为本技术实施例提供的通信装置的一种硬件结构示意图。该通信装置包括处理器21,存储器22、通信接口23、总线24。处理器21,存储器22以及通信接口23之间可以通过总线24连接。
58.处理器21是通信装置的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器21可以是一个通用cpu,也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
59.作为一种实施例,处理器21可以包括一个或多个cpu,例如图2中所示的cpu0和cpu1。
60.存储器22可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
61.一种可能的实现方式中,存储器22可以独立于处理器21存在,存储器22可以通过总线24与处理器21相连接,用于存储指令或者程序代码。处理器21调用并执行存储器22中存储的指令或程序代码时,能够实现本技术下述实施例提供的日志存储方法。
62.在本技术实施例中,对于日志存储装置101、嵌入式产品102和服务器103而言,存储器22中存储的软件程序不同,所以日志存储装置101、嵌入式产品102和服务器103实现的功能不同。关于各设备所执行的功能将结合下面的流程图进行描述。
63.另一种可能的实现方式中,存储器22也可以和处理器21集成在一起。
64.通信接口23,用于通信装置与其他设备通过通信网络连接,所述通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,wlan)等。通信接口23可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
65.总线24,可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component interconnect,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
66.需要指出的是,图2中示出的结构并不构成对该通信装置的限定,除图2所示部件之外,该通信装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
67.图3示出了本技术实施例中通信装置的另一种硬件结构。如图3所示,通信装置可以包括处理器31以及通信接口32。处理器31与通信接口32耦合。
68.处理器31的功能可以参考上述处理器21的描述。此外,处理器31还具备存储功能,可以起上述存储器22的功能。
69.通信接口32用于为处理器31提供数据。该通信接口32可以是通信装置的内部接口,也可以是通信装置对外的接口(相当于通信接口23)。
70.需要指出的是,图2(或图3)中示出的结构并不构成对通信装置的限定,除图2(或图3)所示部件之外,该通信装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
71.如图4所示,为本技术实施例提供的一种日志存储方法的流程示意图。该日志存储方法应用于日志存储装置,日志存储装置归属于图1所示的日志存储装置。嵌入式产品和服务器组成的日志存储系统。该日志存储方法包括:s401-s409。
72.s401、日志存储装置基于配置文件解析源码文件,以得到日志资源信息。
73.具体的,在源码文件编译之前,日志存储装置可以从服务器获取关于同一个嵌入式产品的配置文件和源码文件,并基于配置文件解析源码文件,以得到日志资源信息。
74.其中,配置文件用于描述源码文件的配置信息。源码文件用于生成嵌入式产品。
75.可选的,配置信息可以是源码文件的名称、日志宏定义和日志标签等信息。
76.可选的,日志存储装置可以通过解析配置文件确定源码文件的名称和日志宏定义等配置信息,且可以通过解析源码文件,获取源码文件中用于生成日志信息的日志记录语句的源代码,并确定日志记录语句的序号。
77.接着,日志存储装置可以根据源码文件的配置信息(日志宏定义等)和日志记录语句的序号,确定日志记录语句生成的日志信息的唯一日志标识。并且,日志存储装置可以将源码文件的配置信息(例如源码文件的名称等)、日志记录语句的源代码和日志信息的唯一日志标识,确定为日志资源信息。
78.可选的,在得到日志资源信息后,日志存储装置可以将日志资源信息的名称和存储位置等信息录入配置文件中。
79.可选的,服务器可以预先存储有用于生成嵌入式产品的源码文件和用于描述源码
文件的配置信息的配置文件。当需要获取用于生成嵌入式产品的源码文件和用于描述源码文件的配置信息的配置文件时,日志存储装置可以向服务器发送用于获取用于生成嵌入式产品的源码文件和用于描述源码文件的配置信息的配置文件的请求消息。
80.接着,服务器响应于请求消息,读取用于生成嵌入式产品的源码文件和用于描述源码文件的配置信息的配置文件,并向日志存储装置发送用于生成嵌入式产品的源码文件和用于描述源码文件的配置信息的配置文件。相应的,日志存储装置可以接收来自服务器的用于生成嵌入式产品的源码文件和用于描述源码文件的配置信息的配置文件。
81.s402、日志存储装置将日志资源信息存储于第二存储设备。
82.具体的,在得到日志资源信息后,日志存储装置可以将日志资源信息存储于第二存储设备。
83.可选的,第二存储设备可以是服务器中预先配置的用于存储日志资源信息的功能模块。
84.s403、日志存储装置接收嵌入式产品发送的日志信息。
85.具体的,在运行并生成用于记录运行过程的日志信息后,嵌入式产品可以向日志存储装置发送日志信息。相应的,日志存储装置可以接收嵌入式产品发送的日志信息。
86.在实际应用中,当生成用于记录运行过程的日志信息时,嵌入式产品可以通过调用日志记录接口,主动向日志存储装置发送日志信息。
87.s404、日志存储装置从日志信息中提取用于标识日志信息的日志参数。
88.具体的,在接收嵌入式产品发送的日志信息后,日志存储装置可以从日志信息中提取用于标识日志信息的日志参数。
89.其中,日志参数可以包括唯一日志标识、等级信息、与日志参数对应的日志记录语句记录的源码的行号和源码生成的业务数据等参数信息。
90.可选的,等级信息可以是error、warning和info等,用于表示与日志参数对应的日志记录语句记录的源码的运行状态。
91.可选的,当与日志参数对应的日志记录语句记录的源码没有生成业务数据时,源码生成的业务数据可以用零表示。
92.可以理解的,日志信息一般由日志接口、固定字符串和用于记录不同源码的运行信息的日志参数组成。这些日志参数的存储占用空间小于日志信息的存储占用空间。
93.示例性的,预设日志信息a为lib_bsp_log(bsp_log_level_error,a,“input para is null\n”,b,c)。其中,“lib_bsp_log”为日志接口,“bsp_log_level_error”为等级信息,“a”表示唯一日志标识,“input para is null\n”为固定字符串,“b”为与日志参数对应的日志记录语句记录的源码的行号,“c”为源码生成的业务数据。
94.接着,在接收到日志信息a后,日志存储装置可以从日志信息中提取用于标识日志信息的唯一日志标识“a”、等级信息“error”、与日志参数对应的日志记录语句记录的源码的行号“b”和源码生成的业务数据“c”。
95.可选的,在从日志信息中提取用于标识日志信息的日志参数后,日志存储装置可以将日志参数存储为二进制格式的文本文件,从而进一步的减少日志参数的存储占用空间。
96.示例性的,预设一条日志信息的存储占用空间为100字节,则固定字符串的存储占
用空间可以达到58字节,用于记录不同源码的运行信息的日志参数的存储占用空间可以达到42字节。日志存储装置将日志参数存储为二进制格式的文本文件后,这些日志参数的存储占用空间可以进一步减少到24字节。
97.这样一来,在存储相同条数日志信息的情况下,本技术实施例中,基于日志存储装置实现日志信息存储的方法,能够极大降低对存储空间的消耗,从而降低日志信息的存储导致的嵌入式产品的系统资源的消耗。
98.s405、日志存储装置将日志参数存储于与嵌入式产品对应的第一存储设备。
99.具体的,在从日志信息中提取用于标识日志信息的日志参数后,日志存储装置可以向嵌入式产品发送日志参数,以使得嵌入式产品接收日志参数并将日志参数存储于与嵌入式产品对应的第一存储设备。
100.可选的,第一存储设备可以是具有体积小、成本低和读取速度快等优点的非易失性(non-volatile)内存器件,例如flash存储器等,以满足嵌入式产品的高度集成和实时感知等要求。
101.s406、日志存储装置接收用于获取目标日志的第一请求消息。
102.具体的,在将日志参数存储于与嵌入式产品对应的第一存储设备后,当需要查阅目标日志,以满足相关业务需求(例如观察运行过程等)时,工作人员可以通过输入模块输入用于获取目标日志的第一请求消息。相应的,日志存储装置可以接收用于获取目标日志的第一请求消息。
103.其中,第一请求消息包括与目标日志对应的唯一日志标识。
104.可选的,日志存储装置可以预先配置有输入模块,以便于工作人员输入用于获取目标日志的第一请求消息。
105.s407、响应于第一请求消息,日志存储装置从第一存储设备中读取与目标日志对应的目标日志参数。
106.具体的,在接收用于获取目标日志的第一请求消息后,日志存储装置可以解析第一请求消息,以确定与目标日志对应的唯一日志标识。
107.接着,响应于第一请求消息,日志存储装置可以根据与目标日志对应的唯一日志标识,从第一存储设备中读取与目标日志对应的目标日志参数。
108.可选的,日志存储装置从第一存储设备中读取与目标日志对应的目标日志参数的方法,可以参考s401中,日志存储装置从服务器中获取用于生成嵌入式产品的源码文件和用于描述源码文件的配置信息的配置文件的方法,在此不再赘述。
109.s408、日志存储装置从第二存储设备中读取与目标日志对应的目标日志资源信息。
110.具体的,在接收用于获取目标日志的第一请求消息后,并确定与目标日志对应的唯一日志标识后,响应于第一请求消息,日志存储装置可以从第二存储设备中读取与目标日志对应的目标日志资源信息。
111.可选的,当第二存储设备为服务器中的功能模块时,日志存储装置从第二存储设备中读取与目标日志对应的目标日志资源信息的方法,可以参考s401中,日志存储装置从服务器中获取用于生成嵌入式产品的源码文件和用于描述源码文件的配置信息的配置文件的方法,在此不再赘述。
112.需要说明的是,上述步骤s407和步骤s408的编码只是为了便于说明,并不对其实际执行顺序构成限定。例如,可以先执行s407,再执行s408;也可以先执行s408,再执行s407;还可以同时执行s407和s408。
113.s409、日志存储装置根据目标日志参数和目标日志资源信息生成目标日志。
114.具体的,在从第一存储设备中读取与目标日志对应的目标日志参数,并从第二存储设备中读取与目标日志对应的目标日志资源信息后,日志存储装置可以根据目标日志参数和目标日志资源信息生成目标日志。
115.可以理解的,目标日志参数中包括与目标日志对应的唯一日志标识、等级信息、与日志参数对应的日志记录语句记录的源码的行号和源码生成的业务数据等参数信息。目标日志资源信息中包括与目标日志对应的源码文件的配置信息(例如源码文件的名称等)、用于记录日志的源代码和日志信息的唯一日志标识。则日志存储装置可以根据预设规则,提取目标日志参数和目标日志资源信息中与目标日志对应的信息,并重构目标日志,以便于查阅目标日志。
116.在一种可以实现的方式中,结合图4,如图5所示,上述s401中,日志存储装置基于配置文件解析源码文件,以得到日志资源信息的方法,具体包括:s501-s504。
117.s501、日志存储装置根据配置文件,确定源码文件的名称和与源码文件对应的日志宏定义和日志标签。
118.具体的,在获取源码文件和配置文件后,日志存储装置可以根据配置文件,确定源码文件的名称和与源码文件对应的日志宏定义和日志标签。
119.可选的,在确定源码文件的名称后,日志存储装置可以根据日志配置文件中与源码文件对应的路径,以读写方式打开源码文件。
120.s502、日志存储装置解析源码文件,确定源码文件中日志记录语句的序号和固定字段。
121.具体的,在确定源码文件的名称和与源码文件对应的日志宏定义和日志标签后,日志存储装置可以解析源码文件,确定源码文件中日志记录语句的序号和固定字段。
122.其中,日志记录语句用于生成与日志记录语句对应的日志信息。
123.s503、日志存储装置根据日志记录语句的序号、日志宏定义和日志标签,确定日志记录语句的唯一日志标识。
124.具体的,在确定源码文件中日志记录语句的序号和固定字段后,日志存储装置可以根据日志记录语句的序号、日志宏定义和日志标签,确定日志记录语句的唯一日志标识。
125.示例性的,预设日志存储装置解析配置文件后,确定源码文件对应的日志宏定义为libbsplogid.h,源码文件的名称为abstractionlayer,源码文件的日志标签为bsp_log_abstract_base:0
×
01。
126.接着,日志存储装置解析源码文件,确定源码文件中a日志记录语句的序号为1和b日志记录语句的序号为2后,可以确定序号为1的a日志记录语句的唯一日志标识为lib_bsp_log(bsp_log_abstract_base_0:0
×
10000000),序号为2的b日志记录语句的唯一日志标识为lib_bsp_log(bsp_log_abstract_base_1:0
×
10000001)。
127.s504、日志存储装置根据日志记录语句的固定字段、唯一日志标识和源码文件的名称,生成日志资源信息。
128.具体的,在确定日志记录语句的唯一日志标识后,日志存储装置可以根据日志记录语句的固定字段、唯一日志标识和源码文件的名称,生成日志资源信息。
129.示例性的,预设日志记录语句a的固定字段为“input para is null\n”,唯一日志标识为lib_bsp_log(bsp_log_main_base_0:0
×
10000001),源码文件的名称为bspmain,则生成的日志资源信息为“0
×
10000001bspbspmaininfo.c input para is null\n”。
130.在一种可以实现的方式中,结合图5,如图6所示,该日志存储方法,还包括:s601。
131.s601、日志存储装置将日志记录语句的源代码标识更新为唯一日志标识。
132.具体的,在确定日志记录语句的唯一日志标识后,日志存储装置可以将日志记录语句的源代码标识更新为唯一日志标识,以完成源码文件的更新。这样一来,在利用更新后的源码文件生成嵌入式产品的程序代码后,嵌入式产品生成的用于记录运行过程的日志信息可以包括有唯一日志标识。
133.需要说明的是,本技术实施例中,在源码编译之前,日志存储装置可以将每条日志记录语句的源代码标识更新为唯一日志标识,不仅可以避免日志记录语句的源代码标识重复使用的情况出现,还可以避免在源码文件进行删减或补充等修改时,容易导致的日志记录语句的源代码标识在源码文件中非顺序排列的情况,提高了获取日志信息的精准性。
134.在一种可以实现的方式中,结合图4,如图7所示,上述s405中,嵌入式产品包括至少两个存储空间。日志存储装置将日志参数存储于与嵌入式产品对应的第一存储设备的方法,具体包括:s701-s703。
135.s701、日志存储装置将嵌入式产品在第一时间段生成的日志参数存储于第一存储空间。
136.具体的,在从日志信息中提取用于标识日志信息的日志参数后,日志存储装置可以将嵌入式产品在第一时间段生成的日志参数存储于第一存储空间。
137.可选的,嵌入式产品在系统启动时,可以预留物理存储器上的一段物理内存,并通过预设方法进行内存映射,以将一段物理内存映射为至少两个存储空间。
138.可选的,物理存储器可以是双倍速率同步动态随机存储器(double data rate synchronous dynamic random access memory,ddr sdram)。
139.可选的,在将一段物理内存映射为至少两个存储空间后,嵌入式产品可以对至少两个存储空间执行初始化操作,已完成文件头的设定。文件头中可以包括关于判断语句、计数语句、存储规则语句和计时语句等语句的定义。
140.可选的,判断语句中可以通过魔数字(magic word)来判断当前存储空间中是否存在日志参数。魔数字(magic word)在初始化时可以设置为固定值,在日志参数转存入第一存储设备时也可以清零。
141.可选的,计数语句可以通过logmsgnum来记录当前存储空间中存储的日志条数。logmsgnum在初始化时为0,每添加一条日志参数,则自动增加1,在日志参数转存入第一存储设备时也可以清零。
142.可选的,存储规则语句可以将当前日志参数存储时的大小端信息存入endian,以便于正确地存放日志参数。
143.可选的,计时语句可以用于记录日志参数的生成时间。
144.可选的,预设方法可以是基于函数mmap的映射方法。
145.可选的,第一时间段可以是计数语句记录的日志参数的数量从0增加至预设数量时确定的。预设数量可以根据第一存储空间的大小设定。
146.s702、当第一存储空间的存储量小于预设存储量时,日志存储装置将嵌入式产品在第二时间段生成的日志参数存储于第二存储空间。
147.具体的,在将嵌入式产品在第一时间段生成的日志参数存储于第一存储空间后,当第一存储空间的存储量小于预设存储量时,日志存储装置可以将嵌入式产品在第二时间段生成的日志参数存储于第二存储空间。
148.其中,第二时间段与第一时间段为连续的时间段。第一存储空间和第二存储空间为至少两个存储空间中的任意两个存储空间。
149.可选的,预设存储量为预设的第一存储空间的剩余存储量,以使得当第一存储空间的存储量小于预设存储量时,即在第一存储空间被全部占用前,停止向第一存储空间存入日志参数。
150.s703、当第一存储空间的存储量小于预设存储量,或者第一时间段的时长大于预设时长时,日志存储装置将第一存储空间中存储的日志参数存入第一存储设备。
151.具体的,在将嵌入式产品在第一时间段生成的日志参数存储于第一存储空间后,当第一存储空间的存储量小于预设存储量,或者第一时间段的时长大于预设时长时,日志存储装置可以将第一存储空间中存储的日志参数存入第一存储设备。
152.示例性的,预设第一存储空间的存储量为0.1mb,预设存储量为0.2mb。这种情况下,第一存储空间的存储量小于预设存储量(即0.1mb小于0.2mb),则日志存储装置停止向第一存储空间存储日志参数,将嵌入式产品在第一时间段生成的日志参数存储于第一存储空间,同时将嵌入式产品在第二时间段生成的日志参数存储于第二存储空间。
153.可选的,预设时长可以由人工凭经验预设,并在对至少两个存储空间执行初始化操作时,存入至少两个存储空间的头文件中。
154.可选的,日志存储装置将第一存储空间中存储的日志参数存入第一存储设备时,可以通过第一存储空间和第一存储设备间的独立线程进行,从而避免转存时间长导致的系统业务抖动。
155.需要说明的是,与嵌入式产品对应的第一存储设备(例如flash存储器)的擦写次数有限。在存储大体量的日志信息时,如果采取一次存储一条日志信息的方法,不仅会降低第一存储设备的使用寿命,还会严重降低嵌入式产品的系统性能。
156.本技术实施例中,日志存储装置可以先将嵌入式产品在第一时间段生成的日志参数存储于第一存储空间,当第一存储空间的存储量小于预设存储量,或者第一时间段的时长大于预设时长时,再将一定数量的日志参数一次性存入第一存储设备中,可以极大地减少存储大体量的日志信息所需的擦写次数,延长第一存储设备的使用寿命,并提高嵌入式产品的系统性能。同时,当出现异常情况(例如系统panic)导致重启时,日志存储装置可以导出物理内存(例如ddr)中的日志信息,从而定义异常情况。
157.在一种可以实现的方式中,结合图4,如图8所示,该日志存储方法,还包括:s801-s803。
158.s801、日志存储装置接收用于获取目标日志参数的第二请求消息。
159.具体的,在将日志参数存储于至少两个存储空间中的任一存储空间后,当需要查
阅目标日志参数,以满足相关业务需求(例如打印目标日志参数至前台等)时,工作人员可以通过输入模块输入用于获取目标日志参数的第二请求消息。相应的,日志存储装置可以接收用于获取目标日志参数的第二请求消息。
160.其中,第二请求消息包括与目标日志参数对应的唯一日志标识。
161.s802、响应于第二请求消息,日志存储装置根据与目标日志参数对应的唯一日志标识,从至少两个存储空间中确定存储目标日志参数的目标存储空间。
162.具体的,在接收用于获取目标日志参数的第二请求消息后,日志存储装置可以解析第二请求消息,以确定与目标日志参数对应的唯一日志标识。
163.接着,响应于第一请求消息,日志存储装置可以根据与目标日志参数对应的唯一日志标识,从至少两个存储空间中确定存储目标日志参数的目标存储空间。
164.s803、日志存储装置从目标存储空间中读取目标日志参数,并输出目标日志参数。
165.具体的,在从至少两个存储空间中确定存储目标日志参数的目标存储空间后,日志存储装置可以从目标存储空间中读取目标日志参数,并输出目标日志参数。
166.可选的,日志存储装置从目标存储空间中读取目标日志参数的方法,可以参考s401中,日志存储装置从服务器中获取用于生成嵌入式产品的源码文件和用于描述源码文件的配置信息的配置文件的方法,在此不再赘述。
167.需要说明的是,现有技术中通过printk或者printf等系统接口将日志信息打印到前台(即输出到显示装置进行显示)时,不能同时将日志信息进行存储,且极大消耗系统cpu资源,无法应用到实时性要求高的业务场景。本技术实施例中,日志存储装置在将日志参数存放于物理存储器上的至少两个存储空间的同时,还可以输出日志参数以进行打印,克服了现有技术中保存和打印不能同时进行的问题。
168.本技术实施例中,日志存储装置在接收嵌入式产品发送的日志信息后,可以从日志信息中提取用于标识日志信息的日志参数,并将日志参数存储于与嵌入式产品对应的第一存储设备。由于日志参数的存储占用空间小于日志信息的存储占用空间,因此,本技术可以减少存储日志信息所占用的空间,可以使与嵌入式产品对应的第一存储设备更合理地存储日志文件。
169.上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
170.本技术实施例可以根据上述方法示例对日志存储装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选的,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
171.如图9所示,为本技术实施例提供的一种日志存储装置的结构示意图。该日志存储装置可以用于执行如图4至图8所示的日志存储方法。图9所示日志存储装置包括:接收单元
901和处理单元902。
172.接收单元901,用于接收嵌入式产品发送的日志信息。例如,结合图4,接收单元901可以用于执行s403。
173.处理单元902,用于从接收单元901接收到的日志信息中提取用于标识日志信息的日志参数。日志参数的存储占用空间小于日志信息的存储占用空间。例如,结合图4,处理单元902可以用于执行s404。
174.处理单元902,还用于将日志参数存储于与嵌入式产品对应的第一存储设备。例如,结合图4,处理单元902可以用于执行s405。
175.可选的,处理单元902,还用于基于配置文件解析源码文件,以得到日志资源信息。配置文件用于描述源码文件的配置信息。源码文件用于生成嵌入式产品。例如,结合图4,处理单元902可以用于执行s401。
176.处理单元902,还用于将日志资源信息存储于第二存储设备。例如,结合图4,处理单元902可以用于执行s402。
177.可选的,接收单元901,还用于接收用于获取目标日志的第一请求消息。例如,结合图4,接收单元901可以用于执行s406。
178.处理单元902,还用于响应于第一请求消息,从第一存储设备中读取与目标日志对应的目标日志参数。例如,结合图4,处理单元902可以用于执行s407。
179.处理单元902,还用于从第二存储设备中读取与目标日志对应的目标日志资源信息。例如,结合图4,处理单元902可以用于执行s408。
180.处理单元902,还用于根据目标日志参数和目标日志资源信息生成目标日志。例如,结合图4,处理单元902可以用于执行s409。
181.可选的,处理单元902,还用于根据配置文件,确定源码文件的名称和与源码文件对应的日志宏定义和日志标签。例如,结合图5,处理单元902可以用于执行s501。
182.处理单元902,还用于解析源码文件,确定源码文件中日志记录语句的序号和固定字段。日志记录语句用于生成与日志记录语句对应的日志信息。例如,结合图5,处理单元902可以用于执行s502。
183.处理单元902,还用于根据日志记录语句的序号、日志宏定义和日志标签,确定日志记录语句的唯一日志标识。例如,结合图5,处理单元902可以用于执行s503。
184.处理单元902,还用于根据日志记录语句的固定字段、唯一日志标识和源码文件的名称,生成日志资源信息。例如,结合图5,处理单元902可以用于执行s504。
185.可选的,处理单元902,还用于将日志记录语句的源代码标识更新为唯一日志标识。例如,结合图6,处理单元902可以用于执行s601。
186.可选的,日志参数包括唯一日志标识、等级信息、与日志参数对应的日志记录语句记录的源码的行号和源码生成的业务数据。
187.可选的,嵌入式产品包括至少两个存储空间。处理单元902,还用于将嵌入式产品在第一时间段生成的日志参数存储于第一存储空间。例如,结合图7,处理单元902可以用于执行s701。
188.处理单元902,还用于当第一存储空间的存储量小于预设存储量时,将嵌入式产品在第二时间段生成的日志参数存储于第二存储空间。第二时间段与第一时间段为连续的时
间段。第一存储空间和第二存储空间为至少两个存储空间中的任意两个存储空间。例如,结合图7,处理单元902可以用于执行s702。
189.处理单元902,还用于当第一存储空间的存储量小于预设存储量,或者第一时间段的时长大于预设时长时,将第一存储空间中存储的日志参数存入第一存储设备。例如,结合图7,处理单元902可以用于执行s703。
190.可选的,接收单元901,还用于接收用于获取目标日志参数的第二请求消息。第二请求消息包括与目标日志参数对应的唯一日志标识。例如,结合图8,接收单元901可以用于执行s801。
191.处理单元902,还用于响应于第二请求消息,根据与目标日志参数对应的唯一日志标识,从至少两个存储空间中确定存储目标日志参数的目标存储空间。例如,结合图8,处理单元902可以用于执行s802。
192.处理单元902,还用于从目标存储空间中读取目标日志参数,并输出目标日志参数。例如,结合图8,处理单元902可以用于执行s803。
193.本领域技术人员应该可以意识到,在上述一个或多个示例中,本技术所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机可读存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
194.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
195.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
196.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献