日志文件保存方法、装置、电子装置及存储介质与流程

文档序号:15385126发布日期:2018-09-08 00:28阅读:143来源:国知局

本发明涉及计算机技术领域,尤其涉及一种日志文件保存方法、装置、电子装置及存储介质。



背景技术:

随着科技的发展,越来越多的终端产品已经融入人们的生活,越来越多的智能终端产品增加了更强大的娱乐、咨询、办公、社交等功能,已经成为绝大多数人不可缺少的生活元素,例如手机、电视机等,因此越来越多的企业也都加入到终端产品开发的行列。在产品的开发过程中测试是必不可少的环节,为了跟踪和测试终端产品的运行状态,通常需要对其运行过程中产生的日志文件进行分析。

具体地,目前,抓取日志文件的一种方法是通过将终端产品连上pc端,再使用pc端专门的工具对相关日志文件进行抓取;另一种方法是在终端产品上插入u盘,然后将pc机与终端产品进行连接,利用pc机手动输入抓取命令,将日志文件保存到u盘中。

然而,发明人在实施本发明的过程中发现,上述两种抓取日志文件的方式都要求终端产品与pc端进行绑定才能获取到日志文件,在涉及到输入抓取命令的过程需要使用串口工具,并且终端产品的板卡上也要配置支持串口连接的槽位供串口工具连接,而很多需要抓取系统日志文件的场景之下都是没有串口工具的,操作繁琐不灵活,增加了测试人员的负担。



技术实现要素:

针对上述问题,本发明的目的在于一种日志文件保存方法、装置、电子装置及存储介质,实现对系统日志文件的自动抓取,不需要利用额外的串口工具和移动设备,可以提高日志文件的抓取效率。

第一方面,本发明实施例提供了一种日志文件保存方法,包括如下步骤:

在具有接口的电子装置处:

识别插入所述接口的可移动存储设备;

获取所述可移动存储设备所在的具体路径;

根据所述具体路径,判断所述可移动存储设备中是否存在开关文件;

当检测到所述可移动存储设备中存在所述开关文件时,根据所述具体路径生成用于抓取日志文件的抓取命令;

根据所述抓取命令抓取日志文件,并将抓取到的所述日志文件存储到所述可移动存储设备的具体路径中。

在第一方面的第一种实现方式中,当所述电子装置具有显示屏时,所述日志文件保存方法还包括:

当检测到所述日志文件抓取成功时,在所述显示屏上显示日志文件抓取成功的提示;

否则,在所述显示屏上显示日志文件抓取失败的提示。

在第一方面的第二种实现方式中,所述当检测到所述可移动存储设备中存在所述开关文件时,根据所述具体路径生成用于抓取日志文件的抓取命令,具体包括:

当检测到所述可移动存储设备中存在所述开关文件时,根据所述具体路径、系统的日志信息获取指令以及重定向指令,生成用于抓取日志文件的抓取命令。

根据第一方面的第二种实现方式,在第一方面的第三种实现方式中,所述根据所述抓取命令抓取日志文件,并将抓取到的所述日志文件存储到所述可移动存储设备的具体路径中,具体为:

根据所述抓取命令中的日志信息获取指令获取所述电子装置从开机到所述可移动存储设备插入时段内的日志信息;

根据所述重定向指令以及所述具体路径,将所述日志信息写入到所述可移动存储设备的具体路径中。

根据第一方面的第二种实现方式,在第一方面的第四种实现方式中,所述根据所述抓取命令抓取日志文件,并将抓取到的所述日志文件存储到所述可移动存储设备的具体路径中,具体为:

调用预先指定的命令脚本;

将所述抓取命令传递至预先指定的命令脚本,并执行所述抓取命令以抓取日志文件;

将抓取得到的所述日志文件存储到所述可移动存储设备的具体路径中。

在第一方面的第五种实现方式中,还包括:

根据所述开关文件,在所述可移动存储设备的具体路径中创建目标文件夹;

则所述根据所述抓取命令抓取日志文件,将抓取到的所述日志文件存储到所述可移动存储设备的具体路径中,具体为:

根据所述抓取命令抓取日志文件,将抓取得到的所述日志文件存储到所述目标文件夹中。

在第一方面的第六种实现方式中,还包括:

获取所述可移动存储设备的设备信息;

根据所述设备信息,将抓取到的所述日志文件按照预定的命名规则进行命名。

第二方面,本发明实施例还提供了一种日志文件保存装置,包括:

设备识别模块,用于识别插入接口的可移动存储设备;

路径获取模块,用于获取所述可移动存储设备所在的具体路径;

文件判断模块,用于根据所述具体路径,判断所述可移动存储设备中是否存在开关文件;

命令生成模块,用于当检测到所述可移动存储设备中存在所述开关文件时,根据所述具体路径生成用于抓取日志文件的抓取命令;

日志存储模块,用于根据所述抓取命令抓取日志文件,并将抓取到的所述日志文件存储到所述可移动存储设备的具体路径中。

第三方面,本发明实施例还提供了一种电子装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项所述的日志文件保存方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的日志文件保存方法。

上述技术方案的一个技术方案具有如下优点:利用可移动存储设备插入电子装置,不需要利用额外的串口工具和移动设备;根据自动生成的抓取命令抓取日志文件并将存储到所述可移动存储设备中,简化了用户的操作过程,实现了对系统日志文件的自动抓取,可以有效地提高日志文件的抓取效率。当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明第一实施例提供的日志文件保存方法的流程示意图。

图2是本发明第一实施例提供的日志文件保存方法的一种抓取日志流程图。

图3是本发明第四实施例提供的日志文件保存装置的一种结构示意图。

图4是本发明第四实施例提供的日志文件保存装置的另一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,本发明第一实施例提供了一种日志文件保存方法,其可以在具有接口的电子装置上执行,并包括以下步骤:

s10,识别插入所述接口的可移动存储设备。

在本实施例中,所述可移动存储设备具有高度集成、快速存取、方便灵活、性价优良、容易保存等性能。从存储介质上来区分,可移动存储设备大致分为磁介质存储(如zip、ls-120、usb移动硬盘等)、光介质存储(如cd-rw、dvd、mo)和闪存介质存储(如usb闪存盘、各种闪存卡)三种,其中u盘(usb闪存盘)已经成为移动存储市场的主流产品,它是一种使用usb接口的无需物理驱动器的微型高容量移动存储产品,通过usb接口与电脑连接,实现即插即用。

在本实施例中,所述电子装置可以为个人计算机、电视机等等带有接口的终端设备,通过所述接口可以将所述可移动存储设备和所述电子装置进行连接。在本实施例中,通过所述电子装置上的usb接口,可以使用u盘实现对所述电子装置上的日志文件的自动抓取和保存。作为示例,当电子装置出现问题时,将u盘通过所述usb接口插入所述电子装置,然后通过系统的usbdriver(usb驱动)对所述u盘进行识别,使得所述电子装置可以与所述u盘进行数据传输。

s20,获取所述可移动存储设备所在的具体路径。

在本实施例中,当在所述电子装置上识别到所述可移动存储设备之后,则可以获取所述可移动存储设备所在的具体路径。作为示例,如图2所示,假设所述电子装置的操作系统为android系统,在android系统自身存在的机制中,当检测到所述u盘已经被usb驱动成功识别之后,操作系统内核(kernel)将识别出来的u盘通过uevent机制传递到volumemanager模块,mountservice的构造函数中会开启监听线程,用于监听socket信息,当volumemanager模块将u盘的识别消息通过socket上传到mountservice后,在mounservice通过storagevolume得到所述插入的u盘的具体路径。

s30,根据所述具体路径,判断所述可移动存储设备中是否存在开关文件。

在本实施例中,在获得所述可移动存储设备的具体路径之后,需要检查所述可移动存储设备中是否存在用于触发抓取日志文件的开关文件。作为示例,根据所述插入的u盘的具体路径,查看所述u盘里的文件,检查所述文件中是否存在所述开关文件,其中所述开关文件可以为格式是savelog.txt的文件,用于触发抓取系统日志文件。在这里,可以通过jdk标准文件操作可以判断所述开关文件是否存在。可以理解的是,在利用所述可移动存储设备抓取电子装置的日志文件之前,需要预先将所述开关文件存储到所述可移动存储设备中。

s40,当检测到所述可移动存储设备中存在所述开关文件时,根据所述具体路径生成用于抓取日志文件的抓取命令。

在本实施例中,抓取系统中的日志文件可以通过抓取命令来执行,在这里,需要根据所述具体路径生成用户抓取日志文件的抓取命令。作为示例,当检测到所述插入电子装置的u盘中存在所述开关文件时,则根据上述得到的所述u盘的具体路径生成相关的抓取命令,可以理解的是,所述抓取命令中包含所述u盘的具体路径的信息。

s50,根据所述抓取命令抓取日志文件,并将抓取到的所述日志文件存储到所述可移动存储设备的具体路径中。

在本实施例中,执行所述抓取命令即可抓取系统中的日志文件。作为示例,所述电子装置在使用过程中,在系统中会缓存相关的日志文件;当生成所述抓取命令之后,在系统中执行所述抓取命令,根据所述抓取命令抓取所述缓存的日志文件,由于所述抓取命令中包含有所述u盘的具体路径的信息,因此将所述抓取得到的日志文件存储到所述u盘的具体路径中。作为示例,如图2所示,可以通过软件开发工具包jdk的runtime对象创建独立的进程来运行所述抓取命令,例如,通过runtime.getruntime().exec(cmd)函数生成一个新的进程来运行所述抓取命令;并且通过判断jdk的runtime对象创建独立的进程来是否正常退出的返回值,如果返回值是0则表明是抓取命令执行成功,即日志文件抓取成功,可以正常退出。

在本实施例中,还包括:根据所述开关文件,在所述可移动存储设备的具体路径中创建目标文件夹;

则所述根据所述抓取命令抓取日志文件,将抓取到的所述日志文件存储到所述可移动存储设备的具体路径中,具体为:

根据所述抓取命令抓取日志文件,将抓取得到的所述日志文件存储到所述目标文件夹中。

在本实施例中,所述可移动存储设备中可能存在多个不同的文件夹,因此当检测到所述可移动存储设备中存在所述开关文件时,可以在所述可移动存储设备的具体路径中创建一个目标文件夹来保存此次抓取到的日志文件。作为示例,当检测到所述u盘中存在所述开关文件时,在所述u盘的目录下创建log文件夹,并将抓取到的日志文件保存在所述log文件夹中,使得用户可以直接通过所述log文件夹快速地找到对应的日志文件来进行分析。

在本实施例中,当所述电子装置具有显示屏时,还包括:

当检测到所述日志文件抓取成功时,在所述显示屏上显示日志文件抓取成功的提示;

否则,在所述显示屏上显示日志文件抓取失败的提示。

在本实施例中,很多终端设备都配置有显示屏,可以利用所述终端设备的显示屏来显示相关的提示。例如,当检测到所述日志文件抓取成功时,在所述电子装置的显示屏上弹出一个提示窗口,所述提示窗口上显示“日志文件抓取成功”,或者当检测到无法抓取所述日志文件时,在弹出的所述提示窗口上显示“日志文件抓取失败”,在这里,所述提示窗口可以由用户操作关闭,也可以在用户拔出所述可移动存储设备之后自动关闭。

综上所述,本实施例提供的一种日志文件保存方法,通过检测可移动存储设备中的开关文件即可自动生成抓取命令以抓取日志文件并将存储到所述可移动存储设备中,无需用户手动输入抓取指令,也无需额外的接口工具,减轻用户的测试负担,简化了操作过程,提高日志文件的抓取效率。

本发明第二实施例:

在第一个实施例的基础上,所述当检测到所述可移动存储设备中存在所述开关文件时,根据所述具体路径生成用于抓取日志文件的抓取命令,具体包括:

当检测到所述可移动存储设备中存在所述开关文件时,根据所述具体路径、系统的日志信息获取指令以及重定向指令,生成用于抓取日志文件的抓取命令。

在本实施例中,当在所述可移动存储设备中检测到所述开关文件时,需要生成抓取命令才能对所述日志文件进行抓取,在这里,所述抓取命令是由所述具体路径、系统的日志信息获取指令以及重定向指令组合而成的。作为示例,当检测到插入所述终端设备的u盘中存在所述开关文件时,根据android标准的logcat-d命令,linux标准的重定向指令和所述u盘的具体路径,组合生成用户抓取日志文件的抓取命令。

在本实施例的一种实现方式中,所述根据所述抓取命令抓取日志文件,并将抓取到的所述日志文件存储到所述可移动存储设备的具体路径中,具体为:

根据所述抓取命令中的日志信息获取指令获取所述电子装置从开机到所述可移动存储设备插入时段内的日志信息;

根据所述重定向指令以及所述具体路径,将所述日志信息写入到所述可移动存储设备的具体路径中。

在本实施例中,可以创建独立的抓取进程来运行所述抓取命令,作为示例,所述抓取命令由android标准的logcat-d命令,linux标准的重定向指令和所述u盘的具体路径组合而成,则根据android标准的logcat-d命令可以获取所述终端设备从开机到所述u盘插入的这段时间内缓存的log日志信息,并且根据linux标准的重定向指令和所述u盘的具体路径,可以将所述log日志信息一次性写入到所述u盘的具体路径中去。在这里,根据所述重定向指令能够将所述log日志信息准确地写入到对应的具体路径中。

在本实施例的另一种实现方式中,所述根据所述抓取命令抓取日志文件,并将抓取到的所述日志文件存储到所述可移动存储设备的具体路径中,具体为:

调用预先指定的命令脚本;

将所述抓取命令传递至预先指定的命令脚本,并执行所述抓取命令以抓取日志文件;

将抓取得到的所述日志文件存储到所述可移动存储设备的具体路径中。

在本实施例中,利用脚本也可以解析所述抓取命令来抓取相关的日志文件。作为示例,在所述终端设备上,通过设置android原生的系统属性来调用预先指定的sh脚本,把所述抓取日志的命令传递到所述sh脚本并执行,即对android标准的logcat-d命令,linux标准的重定向指令和所述u盘的具体路径进行解析,从而实现对log日志文件的抓取,并把所述log日志文件保存到u盘,在这里,需要说明的是,在framework层执行所述抓取命令涉及到执行重定向指令时,要对所述抓取命令进行特殊处理才能执行,例如利用所述sh脚本解析所述抓取命令,需要在所述抓取命令上加上-c参数,否则所述抓取命令是无法执行的。

通过上述方式,通过自动生成抓取命令来抓取日志文件,操作简单方便,提高了操作效率;根据所述抓取命令能够准确地将所述日志文件保存到所述可移动存储设备的具体路径中去,保证抓取日志的准确性和完整性。

本发明第三实施例:

在第一个实施例的基础上,还包括:

获取所述可移动存储设备的设备信息;

根据所述设备信息,将抓取到的所述日志文件按照预定的命名规则进行命名。

在本实施例中,一般情况下终端设备是批量生产的,每个终端设备都具有自己的设备信息,在设备出现问题时,通常需要获取多个终端设备的系统日志来分析问题。在本实施例中,利用一个可移动存储设备就可以保存多个终端设备的系统日志,当然也可以保存不同类型的终端设备的日志文件。作为示例,当在所述终端设备中抓取到日志文件之后,获取所述终端设备的设备信息,例如供应商序列号和设备序列号等,根据所述设备信息,将抓取到的所述日志文件按照预定的命名规则进行命名,例如命名规则为“抓取日期+设备序列号”等等,并将重新命名之后的所述日志文件保存到所述可移动存储设备的具体路径中。

通过上述方式,通过对不同的日志文件进行重新命名,使得可以利用一台可移动存储设备就保存多份不同的系统日志,使用户可以快速地获取多台终端设备的日志文件,也不会导致还未进行分析的日志文件被新抓取的日志文件覆盖掉,简化了用户的操作步骤,提高了用户的体验感。

请参阅图3,本发明第四实施例提供了一种日志文件保存装置,包括:

设备识别模块10,用于识别插入接口的可移动存储设备;

路径获取模块20,用于获取所述可移动存储设备所在的具体路径;

文件判断模块30,用于根据所述具体路径,判断所述可移动存储设备中是否存在开关文件;

命令生成模块40,用于当检测到所述可移动存储设备中存在所述开关文件时,根据所述具体路径生成用于抓取日志文件的抓取命令;

日志存储模块50,用于根据所述抓取命令抓取日志文件,并将抓取到的所述日志文件存储到所述可移动存储设备的具体路径中。

优选地,当所述电子装置具有显示屏时,所述日志文件保存装置还包括:

提示显示模块,用于当检测到所述日志文件抓取成功时,在所述显示屏上显示日志文件抓取成功的提示;否则,在所述显示屏上显示日志文件抓取失败的提示。

优选地,所述命令生成模块40具体包括:

命令生成单元,用于当检测到所述可移动存储设备中存在所述开关文件时,根据所述具体路径、系统的日志信息获取指令以及重定向指令,生成用于抓取日志文件的抓取命令。

进一步地,日志存储模块50具体包括:

日志获取单元,用于根据所述抓取命令中的日志信息获取指令获取所述电子装置从开机到所述可移动存储设备插入时段内的日志信息;

第一存储单元,用于根据所述重定向指令以及所述具体路径,将所述日志信息写入到所述可移动存储设备的具体路径中。

优选地,所述日志存储模块50具体包括:

脚本调用单元,用于调用预先指定的命令脚本;

命令执行单元,用于将所述抓取命令传递至预先指定的命令脚本,并执行所述抓取命令以抓取日志文件;

第二存储单元,用于将抓取得到的所述日志文件存储到所述可移动存储设备的具体路径中。

优选地,所述日志文件保存装置还包括:

文件夹创建模块,用于根据所述开关文件,在所述可移动存储设备的具体路径中创建目标文件夹;

则所述日志存储模块50,具体为:

日志存储单元,用于根据所述抓取命令抓取日志文件,将抓取得到的所述日志文件存储到所述目标文件夹中。

优选地,如图4所示,所述日志文件保存装置还包括:

信息获取模块60,用于获取所述可移动存储设备的设备信息;

日志命名模块70,用于根据所述设备信息,将抓取到的所述日志文件按照预定的命名规则进行命名。

本发明第五实施例还提供了一种电子装置。该实施例的电子装置包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如日志文件保存程序。所述处理器执行所述计算机程序时实现上述各个日志文件保存方法的实施例中的步骤,例如图1所示的步骤s10。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各单元的功能,例如图3所示的设备识别模块10。

示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子装置中的执行过程。

所述电子装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述电子装置可包括,但不仅限于,处理器、存储器、显示器。本领域技术人员可以理解,上述部件仅仅是电子装置的示例,并不构成对电子装置的限定,可以包括比上述部件更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子装置还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述电子装置的控制中心,利用各种接口和线路连接整个所述电子装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述电子装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、文字转换功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、文字消息数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述电子装置集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一个计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1