System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及通信,特别涉及一种高性能域控制器应用软件日志管理方法。
技术介绍
1、汽车域控制器soc端通常采用li nux等轻量化操作系统,在减少了系统开销后又便于软件开发。基于linux系统的soc应用软件开发的日志系统是记录软件状态以及参数内容的重要部分,在软件开发和调试的时候起到了至关重要的作用,因此一种高性能的日志系统能够提高软件开发效率。现有的日志系统通常只能在代码级控制或者采用复杂的多进程日志管理系统。
2、相关技术中,公开了一种采进程间通信系统实现软件日志的监控管理,该专利技术具体实现方案如下:启动日志软件,新创建共享内容并且创建信号量,然后进行轮询等待目标进程发出信号。启动目标进程判断日志软件是否有创建共享内存,如果没有读取到共享内存则结束,目标进程日志模块失败;如果读取到共享内存则序列化日志,并将日志写入共享内存中。最后发出信号量通知启动日志软件接收日志信息。日志软件接收到通知信号后读取共享内存内容,对共享内存中的序列化日志进行反序列化后再输出,最后整个日志流程结束。
3、但是,上述该模型因为使用了单独的进程对目标进行的日志进行管理会产生额外的系统开销,目标进程必须有一整套单独的流程用于专门处理来自日志软件的消息增加了软件设计复杂度也加大开销,目标进程中所有模块日志输出都在一起没有分类且每条日志是否输出无法实时调节。
4、该专利技术缺陷产生的原因在于目标进程无法自主得到日志交互信息必须通过依赖进程间通信系统另起额外的进程进行信息交互,并且需要在目标进程中单独分出日志交互模块
技术实现思路
1、本专利技术实施例提供一种高性能域控制器应用软件日志管理方法,以解决现有基于进程间通信的交互式日志管理系统消耗cpu算力以及无法对日志输出做出系统化设计的缺陷。
2、本专利技术统一封装了日志打印函数,每次调用该函数会读取日志配置文件实时更新参数,本地配置文件定义了各个模块的日志输出文件以及各条日志的打印等级。开发人员在编写代码时再根据日志系统化设计策略调用各个封装函数,选择输出模块,最后根据配置文件确定打印等级以及输出文件。在程序运行过程中,开发或者测试人员可以手动更改日志配置文件并能立即生效达到实时修改的目的。统一封装函数读取配置文件不需要额外线程和进程只需要读取文本文件就能实现实时更改日志输出策略,减少了cpu算力消耗,并且系统化输出日志使得日志输出更合理更规范提高了开发和调试效率。
3、一种高性能域控制器应用软件日志管理方法包括:
4、初始化步骤,用于启动日志输出处理函数;
5、日志输出步骤,用于各模块输出日志;
6、日志配置判断步骤,包括:检查日志配置文件是否存在;若存在,则执行日志配置内容正确性判断;若不存在,则执行日志配置初始化步骤,并返回日志输出步骤;日志配置内容正确性判断步骤,若内容正确,则执行更新日志配置步骤;若不正确,则返回日志配置初始化步骤;
7、更新日志配置步骤,用于更新日志配置;
8、日志分等级输出步骤,用于根据日志分等级输出日志;
9、日志文件按模块分类步骤,用于根据模块对日志文件进行分类;
10、默认日志文件输出步骤,用于按默认设置输出日志文件;
11、结束步骤,结束日志处理流程。
12、检查配置文件步骤中:如果配置文件中不存在指定的日志输出模块文件,则自动生成一个新的文件名,并将日志信息输出至该新文件;如果配置文件中存在指定的日志输出模块文件,则直接将日志信息输出至该文件。
13、在日志配置判断步骤中,若日志配置文件不存在,则执行日志配置初始化步骤,并重新进行日志输出处理。
14、一些实施例中,日志分等级输出步骤和日志文件按模块分类步骤并行,一些实施例中,日志分等级输出步骤和日志文件按模块分类步骤按顺序执行,以满足不同的日志处理需求。
15、一些实施例中,日志输出的不同功能及重要性进行系统化设计调用不同的日志封装接口函数,各个封装接口函数对应了配置文件中的日志等级,该系统能够识别并处理致命错误信息、警告信息、正常提示信息和调试信息:
16、包括错误检测步骤,用于检测是否存在致命错误信息,并在检测到致命错误时输出相应的错误信号;
17、警告检测步骤,用于检测是否存在警告信息信息,并在检测到警告时输出相应的警告信号;
18、正常提示检测步骤,用于检测是否存在正常提示信息,并在检测到正常提示时输出相应的提示信号;
19、调试信息检测步骤,用于检测是否存在调试信息,并在检测到调试信息时输出相应的调试信号;
20、日志等级判定步骤,用于根据接收到的错误信号、警告信号、正常提示信号和调试信号,判断日志等级。
21、一些实施例中,所述日志等级包括四个等级,分别为0、1、2和3,其中等级0对应致命错误信息,等级1对应警告信息,等级2对应正常提示信息,等级3对应调试信息。
22、一些实施例中,检测是否存在致命错误信息,若存在,则调用pr i nt_err接口,并设定日志等级为0;
23、检测是否存在警告信息,若存在,则调用pr i nt_warn i ng接口,并设定日志等级为1;
24、检测是否存在正常提示信息,若存在,则调用pri nt_normal接口,并设定日志等级为2;
25、检测是否存在调试信息,若存在,则调用pr i nt_dbg接口,并设定日志等级为3;
26、根据设定的日志等级,执行相应的日志输出操作。
27、一些实施例中,各个模块分工不同,开发人员也不同,日志内容按模块输出到各个文件中便于各个模块阅读,在域控制器中安装功能分成公共模块、apa模块、avm模块、感知模块以及中间件模块,各个模块的日志在调用接口函数的时候输入模块代码值,然后在封装函数中判断该模块代码值属于哪个模块,再根据模块输出到对应日志文件,包括基于模块代码值将日志输出到不同文件的处理流程处理;
28、接口输入步骤,用于接收并传递模块代码值;
29、判断步骤,用于分析模块代码值的类型;
30、日志分模块输出步骤,用于将不同类型的模块代码值输出到指定的日志文件中。
31、判断步骤包括:
32、调用接口函数以输入模块代码值;
33、判断输入的模块代码值是否属于公共模块、apa模块、avm模块、感知模块或中间件模块;
34、根据判断结果,将对应的模块代码值记录到相应的日志文件中,具体为:
35、公共模块代码值记录到common_l og.l og文件;
36、apa模块代码值记录到apa_l og.l og文件;
37、avm模块代码值记录到avm_l og.l og文件;
38、感知模本文档来自技高网...
【技术保护点】
1.高性能域控制器应用软件日志管理方法,其特征在于,其包括:
2.如权利要求1所述的高性能域控制器应用软件日志管理方法,
3.如权利要求2所述的高性能域控制器应用软件日志管理方法,
4.如权利要求1所述的高性能域控制器应用软件日志管理方法,其特征在于,所述日志文件按模块分类步骤包括:
5.如权利要求4所述的高性能域控制器应用软件日志管理方法,其特征在于:
6.如权利要求3所述的高性能域控制器应用软件日志管理方法,其特征在于:
7.如权利要求6所述的高性能域控制器应用软件日志管理方法,其特征在于:
8.如权利要求1所述的高性能域控制器应用软件日志管理方法,其特征在于:
9.根据权利要求8所述的一种高性能域控制器应用软件日志管理方法,其特征在于:
10.如权利要求1所述的高性能域控制器应用软件日志管理方法,其特征在于:日志分等级输出步骤和日志文件按模块分类步骤可并行或顺序执行,以满足不同的日志处理需求。
【技术特征摘要】
1.高性能域控制器应用软件日志管理方法,其特征在于,其包括:
2.如权利要求1所述的高性能域控制器应用软件日志管理方法,
3.如权利要求2所述的高性能域控制器应用软件日志管理方法,
4.如权利要求1所述的高性能域控制器应用软件日志管理方法,其特征在于,所述日志文件按模块分类步骤包括:
5.如权利要求4所述的高性能域控制器应用软件日志管理方法,其特征在于:
6.如权利要求3所述的高性能域控制器应用软...
【专利技术属性】
技术研发人员:郭群,徐建勇,詹修泓,骆铁平,李文庭,
申请(专利权)人:东风汽车集团股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。