一种嵌入式系统及其日志管理方法技术方案

技术编号:24330800 阅读:44 留言:0更新日期:2020-05-29 19:32
本申请公开了一种嵌入式系统的日志管理方法,包括如下步骤。步骤S110:在嵌入式系统的源代码编译时,利用脚本对源代码进行预处理编码。步骤S120:将所有的跟踪代码都存储在第一文件中,第一文件中还记录了每条消息类型的日志的消息结构,还记录了每条文本类型的日志的文本格式,均与相应的跟踪代码相对应。步骤S130:在嵌入式系统运行时,将输出的实时日志记录在第二文件中。步骤S140:将第二文件所记录的每一条日志根据跟踪代码在第一文件中找到相应的消息结构或文本格式,恢复出易于理解的可读日志内容。本申请能够减少日志输出时的系统开销,又能保持完备的日志记录。

An embedded system and its log management method

【技术实现步骤摘要】
一种嵌入式系统及其日志管理方法
本申请涉及一种嵌入式系统的日志管理方法。
技术介绍
以微处理器(microprocessor)和微控制器(MCU,microcontroller)为核心、采用嵌入式系统(EmbeddedSystem)的硬件设备在工业控制、交通管理、信息家电等领域都有广泛的应用。在嵌入式系统中,日志(log)系统是必不可少的。日志用来监控、记录嵌入式系统的实时运行状况。日志可以输出到内存的某块空间、可以输出到某个线程(thread)的套接字(socket)、可以输出到某个串行接口(serialport)或者USB接口等,最后再由文件系统写到某个非易失性存储器(NVM,NonVolatileMemory)中。在嵌入式系统出现问题时,可以根据日志的记录来快速定位问题并解决。对技术人员来说,日志越详细则越容易快速找到问题根源。对于嵌入式系统而言,越详细的日志则意味着越多的资源消耗在日志输出操作上,使得整个系统的性能受到影响。在一些要求快速响应、数据量巨大的嵌入式系统中,如何平衡日志的详细程度与系统开销就成为一个亟待解决的技术问题。
技术实现思路
本申请所要解决的技术问题是提供一种嵌入式系统的日志管理方法,具有系统开销小、简洁高效、日志记录完备的特点,有利于开发者快速定位和解决问题。为此,本申请还要提供一种相应的嵌入式系统。为解决上述技术问题,本申请提供了一种嵌入式系统的日志管理方法,包括如下步骤。步骤S110:在嵌入式系统的源代码编译时,利用脚本对源代码进行预处理编码;所述预处理编码包括文件编码、消息编码和文本编码。所述文件编码是指对源代码中的文件进行编号,每个编号对应于一个文件。所述消息编码是指对源代码的每个文件中的消息ID进行编号。所述文本编码是指对源代码的每个文件中的日志输出标识进行编号。步骤S120:对嵌入式系统的源代码的每个文件中的每个消息ID,将该消息ID所在文件的文件编码、该消息ID的消息编码、以及日志类型为消息类型这三部分构成一条跟踪代码,对应一条消息类型的日志。对嵌入式系统的源代码的每个文件中的每个日志输出标识,将该日志输出标识所在文件的文件编码、该日志输出标识的文本编码、以及日志类型为文本类型这三部分构成一条跟踪代码,对应一条文本类型的日志。将所有的跟踪代码都存储在第一文件中,第一文件中还记录了每条消息类型的日志的消息结构,还记录了每条文本类型的日志的文本格式,均与相应的跟踪代码相对应。每一条消息类型的日志的文本格式记录了该条消息类型的日志中各个参数的名称及顺序。每一条文本类型的日志的文本格式记录了该条文本类型的日志的描述、各个参数的名称、顺序及占用空间。步骤S130:在嵌入式系统运行时,将输出的实时日志记录在第二文件中。每一条日志都包括两部分:日志头部和动态参数。日志头部包括跟踪代码、时间戳和日志长度。动态参数就是嵌入式系统运行时需要记录的参数。消息类型的日志的动态参数就是传递的消息的内容,与消息结构相对应。文本类型的日志的动态参数就是需要记录的变量的实时值,与文本格式相对应。步骤S140:将第二文件所记录的每一条日志根据跟踪代码在第一文件中找到相应的消息结构或文本格式,恢复出易于理解的可读日志内容。上述嵌入式系统的日志管理方法在第一文件中记录日志的消息结构或文本格式。嵌入式系统在运行时在第二文件中输出日志时可以不再需要输出消息结构或文本格式中的固定不变的内容,而仅需输出发生变化的内容。最终再将第二文件中的日志记录通过跟踪代码与第一文件中记录的消息结构或文本格式进行关联,从而恢复出可读的日志内容。这样便减少了日志输出时的系统开销,又能保持完备的日志记录。进一步地,所述步骤S110中,在嵌入式系统的源代码的至少部分文件中包含有一个或多个消息定义;每个消息定义包括消息ID和消息结构。这表明消息ID与消息结构具有关联关系。进一步地,所述步骤S110中,在嵌入式系统的源代码的至少部分文件中包含有一处或多处日志输出标识,当源代码运行到日志输出标识时就会输出文本类型的日志。这里介绍了日志输出标识的功能。进一步地,所述步骤S120中,将嵌入式系统输出的日志分为消息类型和文本类型;消息类型的日志用来记录嵌入式系统的不同模块之间的消息交互,文本类型的日志用来记录嵌入式系统运行时的参数输出。这里介绍了本申请的日志类型的分类。进一步地,所述步骤S130中,消息类型的日志的日志头部比文本类型的日志的日志头部更长,用来存储发出消息的源模块以及接收消息的目的模块。这是一种优选的实现方式。进一步地,所述步骤S130中,将文本类型的日志分为多个优先级;嵌入式系统在运行阶段输出文本类型的日志时,首先检查该条日志是否满足大于或等于当前优先级阈值,满足时才会输出。这是一种优选的实现方式。进一步地,所述步骤S130中,在嵌入式系统的调试阶段输出所有优先级的文本类型的日志;这是一种优选的实现方式,有利于系统调试。进一步地,所述步骤S130中,将消息类型的日志分为多个优先级;嵌入式系统在输出消息类型的日志时,首先检查该条日志是否满足大于或等于当前优先级阈值,满足时才会输出。这是一种优选的实现方式。进一步地,所述步骤S140中,如果第二文件所记录的某一条日志的跟踪代码表明这是消息类型的日志,则根据跟踪代码在第一文件中找到相应的消息结构,根据消息结构所记录的各个参数的顺序找到相应的参数数值,从而解码出可读的日志内容。由于第二文件中不再需要记录消息结构中的固定不变的内容,例如各个参数的名称及顺序,因此嵌入式系统在第二文件中输出日志记录时可以减少系统开销。进一步地,所述步骤S140中,如果第二文件所记录的某一条日志的跟踪代码表明这是文本类型的日志,则根据跟踪代码在第一文件中找到了相应的文本格式,根据文本格式中的各个参数的顺序及占用空间找到相应长度的参数的数值,从而解码出可读的日志内容。由于第二文件中不再需要记录文本格式中的固定不变的内容,例如日志描述、各个参数的名称、顺序及占用空间,因此嵌入式系统在第二文件中输出日志记录时可以减少系统开销。本申请还提供了一种嵌入式系统,包括预处理编码单元、存储单元、日志实时输出单元和日志解读单元。所述预处理编码单元用来在编译嵌入式系统的源代码时,利用脚本对源代码进行预处理编码;所述预处理编码单元进一步包括文件编码单元、消息编码单元和文本编码单元。所述文件编码单元用来对源代码中的文件进行编号,每个编号对应于一个文件,文件编码各不相同。所述消息编码单元用来对源代码的每个文件中的消息ID进行编号;在同一个文件中,每个编号对应于一个消息ID,消息编码各不相同。所述文本编码单元用来对源代码的每个文件中的日志输出标识进行编号;在同一个文件中,每个编号对应于一个日志输出标识,文本编码各不相同。所述存储单元用来在第一文件中存储每条消息类型的日志的跟踪代码及其对应的消息结构,还存储每条文本类型的日志的跟踪代码及其文本格式。所述消息类型的日志的跟踪代码包括文件编码、消息编码、消息类型三部分,嵌入式系统的源代码的每个文件中的每个消息ID本文档来自技高网...

【技术保护点】
1.一种嵌入式系统的日志管理方法,其特征是,包括如下步骤:/n步骤S110:在嵌入式系统的源代码编译时,利用脚本对源代码进行预处理编码;所述预处理编码包括文件编码、消息编码和文本编码;/n所述文件编码是指对源代码中的文件进行编号,每个编号对应于一个文件;/n所述消息编码是指对源代码的每个文件中的消息ID进行编号;/n所述文本编码是指对源代码的每个文件中的日志输出标识进行编号;/n步骤S120:对嵌入式系统的源代码的每个文件中的每个消息ID,将该消息ID所在文件的文件编码、该消息ID的消息编码、以及日志类型为消息类型这三部分构成一条跟踪代码,对应一条消息类型的日志;/n对嵌入式系统的源代码的每个文件中的每个日志输出标识,将该日志输出标识所在文件的文件编码、该日志输出标识的文本编码、以及日志类型为文本类型这三部分构成一条跟踪代码,对应一条文本类型的日志;/n将所有的跟踪代码都存储在第一文件中,第一文件中还记录了每条消息类型的日志的消息结构,还记录了每条文本类型的日志的文本格式,均与相应的跟踪代码相对应;每一条消息类型的日志的消息结构记录了该条消息类型的日志中各个参数的名称及顺序;每一条文本类型的日志的文本格式记录了该条文本类型的日志的描述、各个参数的名称、顺序及占用空间;/n步骤S130:在嵌入式系统运行时,将输出的实时日志记录在第二文件中;每一条日志都包括两部分:日志头部和动态参数;/n日志头部包括跟踪代码、时间戳和日志长度;/n动态参数就是嵌入式系统运行时需要记录的参数;消息类型的日志的动态参数就是传递的消息的内容,与消息结构相对应;文本类型的日志的动态参数就是需要记录的变量的实时值,与文本格式相对应;/n步骤S140:将第二文件所记录的每一条日志根据跟踪代码在第一文件中找到相应的消息结构或文本格式,恢复出易于理解的可读日志内容。/n...

【技术特征摘要】
1.一种嵌入式系统的日志管理方法,其特征是,包括如下步骤:
步骤S110:在嵌入式系统的源代码编译时,利用脚本对源代码进行预处理编码;所述预处理编码包括文件编码、消息编码和文本编码;
所述文件编码是指对源代码中的文件进行编号,每个编号对应于一个文件;
所述消息编码是指对源代码的每个文件中的消息ID进行编号;
所述文本编码是指对源代码的每个文件中的日志输出标识进行编号;
步骤S120:对嵌入式系统的源代码的每个文件中的每个消息ID,将该消息ID所在文件的文件编码、该消息ID的消息编码、以及日志类型为消息类型这三部分构成一条跟踪代码,对应一条消息类型的日志;
对嵌入式系统的源代码的每个文件中的每个日志输出标识,将该日志输出标识所在文件的文件编码、该日志输出标识的文本编码、以及日志类型为文本类型这三部分构成一条跟踪代码,对应一条文本类型的日志;
将所有的跟踪代码都存储在第一文件中,第一文件中还记录了每条消息类型的日志的消息结构,还记录了每条文本类型的日志的文本格式,均与相应的跟踪代码相对应;每一条消息类型的日志的消息结构记录了该条消息类型的日志中各个参数的名称及顺序;每一条文本类型的日志的文本格式记录了该条文本类型的日志的描述、各个参数的名称、顺序及占用空间;
步骤S130:在嵌入式系统运行时,将输出的实时日志记录在第二文件中;每一条日志都包括两部分:日志头部和动态参数;
日志头部包括跟踪代码、时间戳和日志长度;
动态参数就是嵌入式系统运行时需要记录的参数;消息类型的日志的动态参数就是传递的消息的内容,与消息结构相对应;文本类型的日志的动态参数就是需要记录的变量的实时值,与文本格式相对应;
步骤S140:将第二文件所记录的每一条日志根据跟踪代码在第一文件中找到相应的消息结构或文本格式,恢复出易于理解的可读日志内容。


2.根据权利要求1所述的嵌入式系统的日志管理方法,其特征是,所述步骤S110中,在嵌入式系统的源代码的至少部分文件中包含有一个或多个消息定义;每个消息定义包括消息ID和消息结构。


3.根据权利要求1所述的嵌入式系统的日志管理方法,其特征是,所述步骤S110中,在嵌入式系统的源代码的至少部分文件中包含有一处或多处日志输出标识,当源代码运行到日志输出标识时就会输出文本类型的日志。


4.根据权利要求1所述的嵌入式系统的日志管理方法,其特征是,所述步骤S120中,将嵌入式系统输出的日志分为消息类型和文本类型;消息类型的日志用来记录嵌入式系统的不同模块之间的消息交互,文本类型的日志用来记录嵌入式系统运行时的参数输出。


5.根据权利要求1所述的嵌入式系统的日志管理方法,其特征是,所述步骤S130中,消息类型的日志的日志头部比文本类型的日志的日志头部更长,用来存储发出消息的源模块以及接收消息的目的模块。


6.根据权利要求1所述的嵌入式系统的日志管理方法,其特征是,所述步骤S130中,将文本类型的日志分为多个优先级;嵌入式系统在运行阶段输出文本类型的日志时,首先检查该条日志是否满足大于或等于当前优先级阈值,满足时才会输出。


7.根据权利要求1所述的嵌入式系统的日志管理方法,其特征是,所述步骤S130中,在嵌入式系统的调试阶段输出所有优先级的文本类型的日志。


8.根据权利要求1所述的嵌入式系统的日志管理方法,其特征是,所述步骤S130中,将消息类型的日志分为多个优先级;嵌入式系统在输出消息类型的日志时,首先检查该条日志是否满足大于或等于当前优先级阈值,满足时才会输出。


9.根据权利要求1所述的嵌入式系统的日志管理方法,其特征是,所述步骤S140中,如果第二文件所记录的某一条日志的跟踪代码表明这是消息类型的日志,则根据跟踪代码在第一文件中找到相应的消息结构,根据消息结构所记录的各个参数的顺序找到相应的参数数值,从而解码出可读的日志内容。


10.根据权利要求1所述的嵌入式系统的日志管理方法,其特征是,所述步骤S140中,如果第二文件所记录的某一条日志的跟踪代码表明这是文本类型的日志,则根据跟踪代码在第一文件中找到了相应的文本格式,根据文本格式中的各个参数的顺序及占用空间找到相应长度的参数的数值,从而解码出可读的日志内容。


11.一种嵌入式系统,其特征是,包括预处理编码单元、存储单元、日志实时输出单元和日志...

【专利技术属性】
技术研发人员:郭荣华张建胡成松
申请(专利权)人:翱捷科技上海有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1