System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及嵌入式设备开发和日志保存的,具体而言,涉及一种设备日志保存方法、装置及电子设备。
技术介绍
1、目前的嵌入式设备的应用程序在崩溃之后,通常是通过该嵌入式设备中的应用程序日志文件进行分析来确定崩溃原因,然而,在具体的实践过程中发现应用程序崩溃后,应用程序日志文件仅仅记录了应用程序的日志数据,因此难以从应用程序日志文件中分析出崩溃原因。
技术实现思路
1、本申请实施例的目的在于提供一种设备日志保存方法、装置及电子设备,用于改善难以从应用程序日志文件中分析出崩溃原因的问题。
2、本申请实施例提供了一种设备日志保存方法,包括:从循环缓冲队列中获取日志数据,日志数据是嵌入式设备的操作系统存储至循环缓冲队列中的;将日志数据存储至存储介质的日志文件中。在上述方案的实现过程中,通过从循环缓冲队列中获取日志数据,并将日志数据存储至存储介质的日志文件中,由于嵌入式设备的操作系统能够将全部日志数据存储至循环缓冲队列和存储介质中,因此在应用程序崩溃后仍然能够从存储介质中获取到全部日志数据,以便于利用全部日志数据对应用程序崩溃进行分析,有效地改善了难以从应用程序日志文件中分析出崩溃原因的问题。
3、可选地,在本申请实施例中,操作系统中设置有虚拟字符设备;在从循环缓冲队列中获取日志数据之前,还包括:通过虚拟字符设备的数据添加接口将日志数据添加至循环缓冲队列中。在上述方案的实现过程中,通过虚拟字符设备的数据添加接口将日志数据添加至循环缓冲队列中,由于虚拟字符设备之间操作循环缓冲
4、可选地,在本申请实施例中,操作系统为linux操作系统,虚拟字符设备为linux操作系统中的tflog字符设备;在通过虚拟字符设备的写数据接口将日志数据存储至循环缓冲队列中之前,还包括:将tflog字符设备的初始化接口注册至linux操作系统中,获得注册接口;通过注册接口对tflog字符设备进行初始化。在上述方案的实现过程中,通过将tflog字符设备的初始化接口注册至linux操作系统中,并通过注册接口进行初始化,使得该tflog字符设备成为linux操作系统的一个可操作文件节点,有效地让字符设备驱动可以作为模块动态加载到内核中,让应用程序可以通过统一的方式与各种字符设备进行通信,无需了解底层硬件的具体实现细节,从而增加了资源在操作系统层面的可控性和可扩展性。
5、可选地,在本申请实施例中,从循环缓冲队列中获取日志数据,包括:通过虚拟字符设备的数据读取接口从循环缓冲队列中读取日志数据。在上述方案的实现过程中,通过操作系统的虚拟字符设备的数据读取接口提供了用户空间程序与虚拟字符设备之间直接和低级别的数据交换方式,因此该操作系统的访问权限控制起着关键作用,让只有拥有适当权限的进程才能访问相应的设备,从而改善非法或无意的数据篡改的情况,有效地增强了操作系统的安全性。
6、可选地,在本申请实施例中,将日志数据存储至存储介质的日志文件中,包括:通过操作系统的write接口将日志数据存储至存储介质的日志文件中。在上述方案的实现过程中,通过操作系统的write接口将日志数据存储至存储介质的日志文件中,由于嵌入式设备的操作系统能够将线程崩溃和网络断开等关键状态变化的全部日志数据存储至存储介质的日志文件中,以便于在应用程序崩溃后仍然能够利用存储介质中的全部日志数据对应用程序崩溃进行分析,有效地改善了难以从应用程序日志文件中分析出崩溃原因的问题。
7、可选地,在本申请实施例中,在将日志数据存储至存储介质的日志文件中之后,还包括:在嵌入式设备上运行的应用程序崩溃后,从存储介质的日志文件中读取日志数据;使用日志数据对应用程序进行分析。在上述方案的实现过程中,通过使用日志数据对应用程序进行分析,从而可以从繁琐的手动工作中解放出来,专注于更复杂的问题解决和系统优化,并提前预测系统可能出现的问题并及时发出警告,同时能够更快地找到问题的根源,减少排查时间和维护成本。
8、本申请实施例还提供了一种设备日志保存装置,包括:日志数据获取模块,用于从循环缓冲队列中获取日志数据,日志数据是嵌入式设备的操作系统存储至循环缓冲队列中的;日志数据存储模块,用于将日志数据存储至存储介质的日志文件中。
9、可选地,在本申请实施例中,操作系统中设置有虚拟字符设备;设备日志保存装置,还包括:日志数据添加模块,用于通过虚拟字符设备的数据添加接口将日志数据添加至循环缓冲队列中。
10、可选地,在本申请实施例中,操作系统为linux操作系统,虚拟字符设备为linux操作系统中的tflog字符设备;设备日志保存装置,还包括:字符设备注册模块,用于将tflog字符设备的初始化接口注册至linux操作系统中,获得注册接口;字符设备初始模块,用于通过注册接口对tflog字符设备进行初始化。
11、可选地,在本申请实施例中,日志数据获取模块,包括:日志数据读取子模块,用于通过虚拟字符设备的数据读取接口从循环缓冲队列中读取日志数据。
12、可选地,在本申请实施例中,日志数据存储模块,包括:日志文件存储子模块,用于通过操作系统的write接口将日志数据存储至存储介质的日志文件中。
13、可选地,在本申请实施例中,设备日志保存装置,还包括:日志数据读取模块,用于在嵌入式设备上运行的应用程序崩溃后,从存储介质的日志文件中读取日志数据;日志数据分析模块,用于使用日志数据对应用程序进行分析。
14、本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器运行时执行上述的方法。
15、本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述的方法。
16、本申请实施例还提供了一种计算机程序产品,包括:计算机程序或者计算机指令,计算机程序或者计算机指令被处理器运行时执行上述的方法。
本文档来自技高网...【技术保护点】
1.一种设备日志保存方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述操作系统中设置有虚拟字符设备;在所述从循环缓冲队列中获取日志数据之前,还包括:
3.根据权利要求2所述的方法,其特征在于,所述操作系统为Linux操作系统,所述虚拟字符设备为所述Linux操作系统中的tflog字符设备;在所述通过所述虚拟字符设备的写数据接口将所述日志数据存储至所述循环缓冲队列中之前,还包括:
4.根据权利要求2所述的方法,其特征在于,所述从循环缓冲队列中获取日志数据,包括:
5.根据权利要求1所述的方法,其特征在于,所述将所述日志数据存储至存储介质的日志文件中,包括:
6.根据权利要求1-5任一所述的方法,其特征在于,在所述将所述日志数据存储至存储介质的日志文件中之后,还包括:
7.一种设备日志保存装置,其特征在于,包括:
8.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器运行时执行权利要求1至6任一所述的方法。
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行权利要求1至6任一所述的方法。
10.一种计算机程序产品,其特征在于,包括:计算机程序或者计算机指令,所述计算机程序或者所述计算机指令被处理器运行时执行权利要求1至6任一所述的方法。
...【技术特征摘要】
1.一种设备日志保存方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述操作系统中设置有虚拟字符设备;在所述从循环缓冲队列中获取日志数据之前,还包括:
3.根据权利要求2所述的方法,其特征在于,所述操作系统为linux操作系统,所述虚拟字符设备为所述linux操作系统中的tflog字符设备;在所述通过所述虚拟字符设备的写数据接口将所述日志数据存储至所述循环缓冲队列中之前,还包括:
4.根据权利要求2所述的方法,其特征在于,所述从循环缓冲队列中获取日志数据,包括:
5.根据权利要求1所述的方法,其特征在于,所述将所述日志数据存储至存储介质的日志文件中,包括:
6.根据权利要...
【专利技术属性】
技术研发人员:张辉,
申请(专利权)人:深圳市芯睿视科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。