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.一种嵌入式系统,其特征是,包括预处理编码单元、存储单元、日志实时输出单元和日志解读单元;
所述预处理编码单元用来在编译嵌入式系统的源代码时,利用脚本对源代码进行预处理编码;所述预处理编码单元进一步包括文件编码单元、消息编码单元和文本编码单元;
所述文件编码单元用来对源代码中的文件进行编号,每个编号对应于一个文件,文件编码各不相同;
所述消息编码单元用来对源代码的每个文件中的消息id进行编号;在同一个文件中,每个编号对应于一个消息id,消息编码各不相同;
所述文本编码单元用来对源代码的每个文件中的日志输出标识进行编号;在同一个文件中,每个编号对应于一个日志输出标识,文本编码各不相同;
所述存储单元用来在第一文件中存储每条消息类型的日志的跟踪代码及其对应的消息结构,还存储每条文本类型的日志的跟踪代码及其文本格式;
所述消息类型的日志的跟踪代码包括文件编码、消息编码、消息类型三部分,嵌入式系统的源代码的每个文件中的每个消息id都有一条跟踪代码,对应一条消息类型的日志;
所述文本类型的日志的跟踪代码包括文件编码、文本编码、消息类型三部分,嵌入式系统的源代码的每个文件中的每个日志输出表示都有一条跟踪代码,对应一条文本类型的日志;
所述日志实时输出单元用来在嵌入式系统运行时,将输出的实时日志记录在第二文件中;每一条日志都包括日志头部和动态参数两部分;
所述日志解读单元用来将第二文件中记录的每一条日志根据跟踪代码在第一文件中找到相应的消息结构或文本格式,恢复出易于理解的可读日志内容。
12.一种嵌入式系统的日志管理方法,其特征是,包括如下步骤:
步骤s310:在嵌入式系统的源代码编译时,利用脚本对源代码进行预处理编码;所述预处理编码包括文件编码和混合编码;
所述文件编码是指对源代码中的文件进行编号,每个编号对应于一个文件;
所述混合编码是指对源代码的每个文件中的消息id和日志输出标识进行编号;
步骤s320:对嵌入式系统的源代码的每个文件中的每个消息id,将该消息id所在文件的文件编码、该消息id的混合编码、以及日志类型为消息类型这三部分构成一条跟踪代码,对应一条消息类型的日志;
对嵌入式系统的源代码的每个文件中的每个日志输出标识,将该日志输出标识所在文件的文件编码、该日志输出标识的混合编码、以及日志类型为文本类型这三部分构成一条跟踪代码,对应一条文本类型的日志;
将所有的跟踪代码都存储在第一文件中,第一文件中还记录了每条消息类型的日志的消息结构,还记录了每条文本类型的日志的文本格式,均与相应的跟踪代码相对应;每一条消息类型的日志的消息结构记录了该条消息类型的日志中各个参数的名称及顺序;每一条文本类型的日志的文本格式记录了该条文本类型的日志的描述、各个参数的名称、顺序及占用空间;
步骤s330:在嵌入式系统运行时,将输出的实时日志记录在第二文件中;每一条日志都包括日志头部和动态参数两部分;
步骤s340:将第二文件所记录的每一条日志根据跟踪代码在第一文件中找到相应的消息结构或文本格式,恢复出易于理解的可读日志内容。
13.一种嵌入式系统,其特征是,包括预处理编码单元、存储单元、日志实时输出单元和日志解读单元;
所述预处理编码单元用来在编译嵌入式系统的源代码时,利用脚本对源代码进行预处理编码;所述预处理编码单元进一步包括文件编码单元和混合编码单元;
所述文件编码单元用来对源代码中的文件进行编号,每个编号对应于一个文件,文件编码各不相同;
所述消息编码单元用来对源代码的每个文件中的消息id和日志输出标识进行编号;在同一个文件中,每个编号对应于一个消息id或日志输出标识,混合编码各不相同;
所述存储单元用来在第一文件中存储每条消息类型的日志的跟踪代码及其对应的消息结构,还存储每条文本类型的日志的跟踪代码及其文本格式;
所述消息类型的日志的跟踪代码包括文件编码、混合编码、消息类型三部分,嵌入式系统的源代码的每个文件中的每个消息id都有一条跟踪代码,对应一条消息类型的日志;
所述文本类型的日志的跟踪代码包括文件编码、混合编码、消息类型三部分,嵌入式系统的源代码的每个文件中的每个日志输出表示都有一条跟踪代码,对应一条文本类型的日志;
所述日志实时输出单元用来在嵌入式系统运行时,将输出的实时日志记录在第二文件中;每一条日志都包括日志头部和动态参数两部分;
所述日志解读单元用来将第二文件中记录的每一条日志根据跟踪代码在第一文件中找到相应的消息结构或文本格式,恢复出易于理解的可读日志内容。