本发明涉及车机日志输出的,尤其是涉及一种日志输出方法和装置。
背景技术:
1、自适应平台(adaptive platform,autosar ap)中间件被广泛使用在车载ecu设备中,其中autosar ap的日志追踪(log and trace,lt)模块用于各应用程序在运行过程中打印(输出)日志信息,因此lt模块被广泛应用在autosar ap各模块(如:通信管理模块communication management、执行管理execution management、诊断模块diagnostics、平台健康管理模块platform health management等)及非autosar ap应用程序中。
2、目前由于lt模块被广泛应用,如果基于lt模块进行日志输出的应用程序的日志存放路径所在磁盘分区空间过小或其输出日志过多而导致相应的磁盘分区空间不足,致使应用程序的执行效率低、系统卡顿,甚至出现爆盘。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种日志输出方法和装置,通过磁盘分区空间检测,以缓解应用程序的日志输出较多出现爆盘的技术问题。
2、第一方面,实施例提供一种日志输出方法,应用于日志跟踪模块,所述方法包括:
3、根据当前应用进程发送的控制信息,确定所述当前应用进程的日志存放路径和待输出日志信息;
4、检测每个磁盘分区路径和每个所述磁盘分区路径对应的磁盘分区可用空间;
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、删除模块,若不大于,则删除所述日志存放路径中的目标日志,并重复执行所述判断所述当前应用进程对应的磁盘剩余可用空间是否大于所述当前应用进程的磁盘阈值的步骤,直至所述当前应用进程对应的磁盘剩余可用空间大于所述当前应用进程的磁盘阈值时终止;
32、输出模块,若大于,则输出所述待输出日志。
33、第三方面,实施例提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述前述实施方式任一项所述的方法的步骤。
34、第四方面,实施例提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现前述实施方式任一项所述的方法的步骤。
35、本发明实施例提供的一种日志输出方法和装置,响应当前应用进程发送的控制信息触发日志跟踪模块工作,通过日志跟踪模块进行各路径磁盘的空间检测,计算出输出该待输出日志信息后的磁盘剩余可用空间;并通过磁盘剩余可用空间和当前应用进程所对应的磁盘阈值的比较结果,执行日志信息输出操作,或删除相应目标日志信息再重新比对此时磁盘剩余可用空间和当前应用进程所对应的磁盘阈值,直至输出待输出日志终止;通过这种方法能够实现无需额外引入ecu的磁盘检测工具,防止输出日志造成爆盘的情况出现。
36、本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
37、为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。