本发明涉及多应用的日志写入控制的,尤其是涉及一种多应用的日志写入控制方法和装置。
背景技术:
1、日志模块是autosar ap汽车开放系统架构自适应开放平台所必需的模块,每个ecu中均利用该日志模块接收各个应用的写日志请求,并将日志信息写入到指定的文件中。
2、当前autosar建议使用单线程写入日志,编程简单。但随着ap平台上接入的应用越来越多,写日志请求也越来越多,导致目前ap平台在接入几十个应用的时候,写日志功能直接把ecu的cpu资源占满,即此时写日志功能的cpu资源占有率是100%,影响了其他应用的运行。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种多应用的日志写入控制方法和装置,缓解多应用日志写入占用较大cpu资源的技术问题。
2、第一方面,实施例提供一种多应用的日志写入控制方法,所述方法包括:
3、根据从至少一个应用接收到的日志写入请求,判断每个应用是否功能异常;
4、若存在功能异常的第一应用,则将所述第一应用的日志写入的请求功能禁用预设时长;
5、若存在功能正常的至少一个第二应用,则将所述第二应用的日志写入请求分发至线程池中的至少一个目标线程,以使每个所述目标线程将所述第二应用对应的日志内容并行写入无锁队列。
6、在可选的实施方式中,在根据从至少一个应用接收到的日志写入请求,判断每个应用是否功能异常的步骤之前,所述方法还包括:
7、响应于用户的第一操作指令,将第一预设日志写入频率阈值写入配置文件;
8、或者,
9、响应于用户的第二操作指令,将每个日志的类别对应的第二预设日志写入频率阈值写入配置文件;
10、或者,
11、响应于用户的第三操作指令,划分每个应用进程的应用级别,并将所述应用级别对应的第三预设日志写入频率阈值写入配置文件;
12、或者,
13、响应于用户的第四操作指令,划分每个应用进程中每个日志的待写入日志级别,并将每个应用进程中每个所述待写入日志级别对应的第四预设日志写入频率阈值写入配置文件。
14、在可选的实施方式中,根据从至少一个应用接收到的日志写入请求,判断每个应用是否功能异常的步骤,包括:
15、根据接收到的至少一个日志写入请求,确定每个日志写入请求对应的应用进程;
16、从当前内存中查找每个所述应用进程的日志写入请求的计数值,并将每个所述计数值与第一预设日志写入频率阈值进行比对;其中,所述内存按照预设周期进行擦除;
17、若比对结果大于0,则当前应用功能异常;
18、若比对结果小于或等于0,则当前应用功能正常。
19、在可选的实施方式中,根据从至少一个应用接收到的日志写入请求,判断每个应用是否功能异常的步骤,包括:
20、根据接收到的至少一个日志写入请求,确定每个日志写入请求对应的待写入日志的类别;其中,每个所述类别对应一个第二预设日志写入频率阈值;
21、从当前内存中查找每个所述类别对应的日志写入请求的计数值,并将每个所述计数值与对应的所述第二预设日志写入频率阈值进行比对;其中,所述内存按照预设周期进行擦除;
22、若比对结果大于0,则当前类别对应的日志功能异常;
23、若比对结果小于或等于0,则当前类别对应的日志功能正常。
24、在可选的实施方式中,根据从至少一个应用接收到的日志写入请求,判断每个应用是否功能异常的步骤,包括:
25、根据接收到的至少一个日志写入请求,确定每个日志写入请求对应的应用进程的应用级别;其中,每个所述应用级别对应一个第三预设日志写入频率阈值;
26、从当前内存中查找每个所述应用进程的日志写入请求的计数值,并将每个所述计数值与所述第三预设日志写入频率阈值进行比对;其中,所述内存按照预设周期进行擦除;
27、若比对结果大于0,则当前应用进程的功能异常;
28、若比对结果小于或等于0,则当前应用进程的功能正常。
29、在可选的实施方式中,根据从至少一个应用接收到的日志写入请求,判断每个应用是否功能异常的步骤,包括:
30、根据接收到的至少一个日志写入请求,确定每个日志写入请求在所属应用进程中的待写入日志级别;其中,每个所述待写入日志级别对应一个第四预设日志写入频率阈值;
31、从当前内存中查找每个所述应用进程的日志写入请求的计数值,并将每个所述计数值与所述第四预设日志写入频率阈值进行比对;其中,所述内存按照预设周期进行擦除;
32、若比对结果大于0,则当前应用进程的日志功能异常;
33、若比对结果小于或等于0,则当前应用进程的日志功能正常。
34、在可选的实施方式中,将所述第二应用的日志写入请求分发至线程池中的至少一个目标线程,以使每个所述目标线程将所述第二应用对应的日志内容并行写入无锁队列的步骤,包括:
35、根据所述第二应用的日志写入请求,从线程池中确定至少一个目标线程;其中,所述目标线程为空闲状态或任务处理量小于预设阈值;
36、若所述无锁队列未满,则控制每个所述目标线程将所述第二应用对应的日志内容并行写入无锁队列;其中,所述无锁队列为环形数组;
37、若所述无锁队列已满,则控制每个所述目标线程将所述第二应用对应的日志内容覆盖当前已写入时间最长的日志内容,并行写入无锁队列。
38、第二方面,实施例提供一种多应用的日志写入控制装置,所述装置包括:
39、判断模块,根据从至少一个应用接收到的日志写入请求,判断每个应用是否功能异常;
40、禁用模块,若存在功能异常的第一应用,则将所述第一应用的日志写入的请求功能禁用预设时长;
41、写入模块,若存在功能正常的至少一个第二应用,则将所述第二应用的日志写入请求分发至线程池中的至少一个目标线程,以使每个所述目标线程将所述第二应用对应的日志内容并行写入无锁队列。
42、第三方面,实施例提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述前述实施方式任一项所述的方法的步骤。
43、第四方面,实施例提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现前述实施方式任一项所述的方法的步骤。
44、本发明实施例提供的一种多应用的日志写入控制方法和装置,通过判断接收到的日志写入请求对应的应用是否功能异常;若异常,则将该应用的日志写入请求禁用一段时间,只对应用功能正常的日志写入请求进行响应,并调用线程池中的目标线程,实现将应用功能正常的日志内容并行写入无锁队列的目的;此种方式首先可以减少异常功能应用的日志写入,其次可通过多线程并行写入无锁队列的方案提高日志写入效率,进而减少日志写入对ecu的资源的占用。
45、本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
46、为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
1.一种多应用的日志写入控制方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在根据从至少一个应用接收到的日志写入请求,判断每个应用是否功能异常的步骤之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,根据从至少一个应用接收到的日志写入请求,判断每个应用是否功能异常的步骤,包括:
4.根据权利要求2所述的方法,其特征在于,根据从至少一个应用接收到的日志写入请求,判断每个应用是否功能异常的步骤,包括:
5.根据权利要求2所述的方法,其特征在于,根据从至少一个应用接收到的日志写入请求,判断每个应用是否功能异常的步骤,包括:
6.根据权利要求2所述的方法,其特征在于,根据从至少一个应用接收到的日志写入请求,判断每个应用是否功能异常的步骤,包括:
7.根据权利要求1所述的方法,其特征在于,将所述第二应用的日志写入请求分发至线程池中的至少一个目标线程,以使每个所述目标线程将所述第二应用对应的日志内容并行写入无锁队列的步骤,包括:
8.一种多应用的日志写入控制装置,其特征在于,所述装置包括:
9.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法的步骤。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现权利要求1至7任一项所述的方法的步骤。