CN111708688B - 一种协助分析关机充电异常的方法和装置 - Google Patents
一种协助分析关机充电异常的方法和装置 Download PDFInfo
- Publication number
- CN111708688B CN111708688B CN202010564039.1A CN202010564039A CN111708688B CN 111708688 B CN111708688 B CN 111708688B CN 202010564039 A CN202010564039 A CN 202010564039A CN 111708688 B CN111708688 B CN 111708688B
- Authority
- CN
- China
- Prior art keywords
- log
- shutdown charging
- charging mode
- managing
- application program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/442—Shutdown
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明属于计算机技术领域,本发明提供一种协助分析关机充电异常的方法和装置,其方法包括以下步骤:在关机充电模式下,实时读取智能设备的内核日志和管理关机充电模式的应用程序日志,并将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志实时保存至可访问分区。当发现关机充电异常时,将所述智能设备调整至运行状态,从所述可访问分区导出所述智能设备的内核日志和所述管理关机充电模式的应用程序日志,以协助分析关机充电异常。通过将关机充电模式下的日志,实时输出到一个文件中,并将该文件保存起来,当出现了异常时,就能把当次异常的日志导出来进行分析,这样减小了分析关机充电异常的难度,提高了分析的效率。
Description
技术领域
本发明涉及计算机技术领域,尤指一种协助分析关机充电异常的方法和装置。
背景技术
在现有技术中,电子设备在研发阶段会存在很多异常情况,需要对异常情况进行分析以推动电子设备的开发进程。
其中,关机充电模式是每个电子产品必不可少的一个模式,但在该模式下,安卓系统并没有运行起来,所以在此状态下运行的日志也只能通过硬件接口uart(串口)出来,然后通过uart(串口)实时抓取日志,这样的方式费事耗力,也十分浪费时间,同时还需要实时复现到异常情况,才能获取到异常情况下的日志,以对关机充电异常进行分析。
发明内容
本发明提供一种协助分析关机充电异常的方法和装置,通过将关机充电模式下的日志,实时输出到一个文件中,并将该文件保存起来,当出现了异常时,就能把当次异常的日志导出来进行分析,这样减小了分析关机充电异常的难度,提高了分析的效率。
本发明提供的技术方案如下:
一方面,一种协助分析关机充电异常的方法,包括以下步骤:
在关机充电模式下,实时读取智能设备的内核日志和管理关机充电模式的应用程序日志,并将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志实时保存至可访问分区。
当发现关机充电异常时,将所述智能设备调整至运行状态,从所述可访问分区导出所述智能设备的内核日志和所述管理关机充电模式的应用程序日志,以协助分析关机充电异常。
进一步优选地,在所述在关机充电模式下,实时读取智能设备的内核日志之前,包括步骤:
在开机模式下,当Linux文件系统下的kmsg文件实时输出内核日志时,以pollwait读取方式对所述kmsg文件进行读取,以使所述内核日志保存至所述kmsg文件中。
进一步优选地,所述在关机充电模式下,实时读取智能设备的内核日志,并将所述内核日志实时保存至可访问分区,包括步骤:
在关机充电模式下,创建读取所述内核日志的线程。
通过所述线程阻塞读取所述kmsg文件中所述内核日志,并将所述内核日志实时保存至所述可访问分区的内核日志文件中。
进一步优选地,所述在关机充电模式下,实时读取管理关机充电模式的的应用程序日志,并将所述管理关机充电模式的应用程序日志实时保存至可访问分区,包括步骤:
通过printf将所述管理关机充电模式的应用程序日志输出到stderr和stdout中。
创建所述管理关机充电模式的应用程序日志的线程,在所述管理关机充电模式的应用程序日志的线程中创建管道。
利用所述管道获取所述stderr和stdout中的管理关机充电模式的应用程序日志,并将所述管理关机充电模式的应用程序日志实时保存至所述可访问分区的管理关机充电模式的应用程序日志文件中。
进一步优选地,所述协助分析关机充电异常的方法,还包括步骤:
在退出所述关机充电模式时,将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行重命名,以使所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行迭代更新。
进一步优选地,所述将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行重命名,具体包括步骤:
查看所述可访问分区是否保存了所述智能设备的内核日志和所述管理关机充电模式的应用程序日志。
当保存了所述智能设备的内核日志和所述管理关机充电模式的应用程序日志时,获取所述智能设备的内核日志和所述管理关机充电模式的应用程序日志的数量。
当所述智能设备的内核日志和所述管理关机充电模式的应用程序日志的数量超过对应的预设数量时,分别删除所述智能设备的内核日志和所述管理关机充电模式的应用程序日志中对应的保存时间最早的日志。
分别调整所述智能设备的内核日志文件和所述管理关机充电模式的应用程序日志文件中存留的日志的编号。
另一方面,本发明还提供一种协助分析关机充电异常的装置,包括:
读取模块,用于在关机充电模式下,实时读取智能设备的内核日志和管理关机充电模式的应用程序日志,并将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志以实时保存至可访问分区。
分析模块,用于当发现关机充电异常时,将所述智能设备调整至运行状态,从所述可访问分区导出所述智能设备的内核日志和所述管理关机充电模式的应用程序日志,以协助分析关机充电异常。
进一步优选地,所述读取模块还用于:
在开机模式下,当Linux文件系统下的kmsg文件实时输出内核日志时,以pollwait读取方式对kmsg文件进行读取,以得到所述内核日志。
进一步优选地,所述读取模块还用于:
在关机充电模式下,创建读取所述内核日志的线程。
通过所述线程阻塞读取所述kmsg文件中所述内核日志,并实时保存在所述可访问分区的内核日志文件中。
进一步优选地,所述读取模块还用于:
创建所述管理关机充电模式的应用程序日志的线程,在所述管理关机充电模式的应用程序日志的线程中创建管道。
利用所述管道获取通过printf输出到stderr和stdout的管理关机充电模式的应用程序日志。
将所述管理关机充电模式的应用程序日志实时保存至所述可访问分区的管理关机充电模式的应用程序日志文件中。
本发明提供的一种协助分析关机充电异常的方法和装置,至少具有以下有益效果:
1)通过将关机充电模式下的日志,实时输出到一个文件中,并将该文件保存起来,当出现了异常时,就能把当次异常的日志导出来进行分析,这样减小了分析关机充电异常的难度,提高了分析的效率。
2)通过上述方案,在关机充电模式退出时,对保存的日志重新命名,防止不小心覆盖异常的日志,以提供数据的准确性,进而提高分析关机充电异常的准确性。
3)本发明解决了关机充电模式下,无日志可分析的问题,实现了当关机充电异常时,可以直接从已保存的日志文件中导出日志,以实现关机充电异常的分析。
4)由于在现有技术中,只能通过硬件拆机或接串口进行复现并实时抓取log,才能进行分析关机充电异常,这样的方式非常耗时、麻烦、且随机问题也不容易复现的问题,以及大大影响分析效率。通过本方案可以实现快速、及时、高效的对关机充电异常进行分析。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明:
图1是本发明的一种协助分析关机充电异常的方法的一种实施例的流程示意图;
图2是本发明的一种协助分析关机充电异常的方法的另一种实施例的流程示意图;
图3是本发明中将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行重命名的流程示意图;
图4是本发明的一种智能设备的结构示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本文中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
如图1所示,一种协助分析关机充电异常的方法的一种实施例,包括以下步骤:
S100在关机充电模式下,实时读取智能设备的内核日志和管理关机充电模式的应用程序日志,并将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志实时保存至可访问分区。
具体的,在关机充电模式下,有两类日志,一类是kernel的日志即智能设备的内核日志,该日志是记录了机器的内核日志;还有一类是关机充电模式本身的应用程序日志即管理关机充电模式的应用程序日志。
由于上述两类日志都很重要,当智能设备发生异常时,可能是其中一种异常了,或者两种都异常了。因此需要读取这两类日志,以此对关机充电异常进行分析。关机充电模式下,需要特别挂在data分区,然后将日志写到data分区下保存。
示例性的,所述可访问分区可以为data分区,/data/tmp/目录的分区,一种在关机充电模式下可访问的分区,可以在此分区实时写入日志。
S200当发现关机充电异常时,将所述智能设备调整至运行状态,从所述可访问分区导出所述智能设备的内核日志和所述管理关机充电模式的应用程序日志,以协助分析关机充电异常。
具体的,当发现充电异常时,只需将对应的日志导出来,即可进行关机充电异常的问题进行分析,进而针对性的进行修复。
示例性的,将日志保存在机器即智能设备中,如data下,然后将机器正常开机进入系统后,可将data下的日志连接拷贝出来,或者调试阶段可使用adb命令直接导出。所述保存就是实时读取和实时写入,这样不管什么时候断电,它都会保存在机器即智能设备里面,不会丢失。
示例性的,关机充电模式,是在智能设备没有开机的情况下插入充电器进入的一个充电模式,其实智能设备也是跑了一个小系统的,然后这个小系统就是只有充电动画而已。然后在这个小系统里面可以动态写data分区下的文件。
因为之前在关机充电模式下保存的日志已经存在data下了。在后续要拷贝文件中的日志的时候,就按键使得智能设备开机进入正常的系统了,智能设备就不处于关机充电模式下,就可以对data分区下的文件执行拷贝动作。
本方案通过诊断关机状态下的系统信息即上述日志,然后通过这个信息分析充电异常。
进一步优选地,在所述在关机充电模式下,实时读取智能设备的内核日志之前,包括步骤:
在开机模式下,当Linux文件系统下的kmsg文件实时输出内核日志时,以pollwait读取方式对所述kmsg文件进行读取,以使所述内核日志保存至所述kmsg文件中。
示例性的,Kernel的日志会通过Linux文件系统下的/proc/kmsg文件进行实时输出,因此可以对kmsg文件进行pollwait读取。
进一步优选地,所述在关机充电模式下,实时读取智能设备的内核日志,并将所述内核日志实时保存至可访问分区,包括步骤:
在关机充电模式下,创建读取所述内核日志的线程。
通过所述线程阻塞读取所述kmsg文件中所述内核日志,并将所述内核日志实时保存至所述可访问分区的内核日志文件中。
示例性的,进入关机充电模式后,创建读取kernel日志的线程,该线程阻塞读取kmsg文件里面的内容,实时的将该文件保存在/data/tmp/目录下。
进一步优选地,所述在关机充电模式下,实时读取管理关机充电模式的的应用程序日志,并将所述管理关机充电模式的应用程序日志实时保存至可访问分区,包括步骤:
通过printf将所述管理关机充电模式的应用程序日志输出到stderr和stdout中。
创建所述管理关机充电模式的应用程序日志的线程,在所述管理关机充电模式的应用程序日志的线程中创建管道。
利用所述管道获取所述stderr和stdout中的管理关机充电模式的应用程序日志,并将所述管理关机充电模式的应用程序日志实时保存至所述可访问分区的管理关机充电模式的应用程序日志文件中。
具体的,所述通过printf将所述管理关机充电模式的应用程序日志输出到stderr和stdout中和所述创建所述管理关机充电模式的应用程序日志的线程,在所述管理关机充电模式的应用程序日志的线程中创建管道,是不分先后顺序的。
因此所述在关机充电模式下,实时读取管理关机充电模式的的应用程序日志,并将所述管理关机充电模式的应用程序日志实时保存至可访问分区可以根据上述方案执行:
通过printf将所述管理关机充电模式的应用程序日志输出到stderr和stdout中。
创建所述管理关机充电模式的应用程序日志的线程,在所述管理关机充电模式的应用程序日志的线程中创建管道。
利用所述管道获取所述stderr和stdout中的管理关机充电模式的应用程序日志,并将所述管理关机充电模式的应用程序日志实时保存至所述可访问分区的管理关机充电模式的应用程序日志文件中。
此外,所述在关机充电模式下,实时读取管理关机充电模式的的应用程序日志,并将所述管理关机充电模式的应用程序日志实时保存至可访问分区,还可以包括步骤:
创建所述管理关机充电模式的应用程序日志的线程,在所述管理关机充电模式的应用程序日志的线程中创建管道。
通过printf将所述管理关机充电模式的应用程序日志输出到stderr和stdout中。
利用所述管道获取所述stderr和stdout中的管理关机充电模式的应用程序日志,并将所述管理关机充电模式的应用程序日志实时保存至所述可访问分区的管理关机充电模式的应用程序日志文件中。
示例性的,关机充电模式应用程序本身的日志即管理关机充电模式的应用程序日志,无论是正常的日志还是和异常的日志,都可以通过printf输出到stderr和stdout,因此只需将stderr和stdout的内容即日志实时的保存起来即可。同样创建一个线程,该线程里创建一个管道,该管道一端给stderr和stdout输入日志。管道的另一端获取输入的日志,并将该日志实时保存到一个文件中,这样就实现了日志的保存。
进一步优选地,所述协助分析关机充电异常的方法,还包括步骤:
在退出所述关机充电模式时,将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行重命名,以使所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行迭代更新。
进一步优选地,所述将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行重命名,具体包括步骤:
查看所述可访问分区是否保存了所述智能设备的内核日志和所述管理关机充电模式的应用程序日志。
当保存了所述智能设备的内核日志和所述管理关机充电模式的应用程序日志时,获取所述智能设备的内核日志和所述管理关机充电模式的应用程序日志的数量。
当所述智能设备的内核日志和所述管理关机充电模式的应用程序日志的数量超过对应的预设数量时,分别删除所述智能设备的内核日志和所述管理关机充电模式的应用程序日志中对应的保存时间最早的日志。
分别调整所述智能设备的内核日志文件和所述管理关机充电模式的应用程序日志文件中存留的日志的编号。
示例性的,在关机充电模式退出的时候,将保存的日志重新命名。命名的流程如下:看当下是否有保存了的日志,并判断看有多少份日志,如果超过5份日志,则删除最后一份日志,然后将其他对应的日志编号加1,如:last_log_1.txt->last_log_2.txt,这样,以此类推。这样保存,是为了防止不小心将异常的log给覆盖了,因此保存多了几份日志。
通过上述方案,在关机充电模式退出时,对保存的日志重新命名,防止不小心覆盖异常的日志,以提供数据的准确性,进而提高分析关机充电异常的准确性。
如图2所示,本发明还提供一种协助分析关机充电异常的方法的另一种实施例,具体包括以下步骤:
S100在关机充电模式下,实时读取智能设备的内核日志和管理关机充电模式的应用程序日志,并将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志实时保存至可访问分区。
具体的,在关机充电模式下,有两类日志,一类是kernel的日志即智能设备的内核日志,该日志是记录了机器的内核日志;还有一类是关机充电模式本身的应用程序日志即管理关机充电模式的应用程序日志。
由于上述两类日志都很重要,当智能设备发生异常时,可能是其中一种异常了,或者两种都异常了。因此需要读取这两类日志,以此对关机充电异常进行分析。关机充电模式下,需要特别挂在data分区,然后将日志写到data分区下保存。
示例性的,所述可访问分区可以为data分区,/data/tmp/目录的分区,一种在关机充电模式下可访问的分区,可以在此分区实时写入日志。
S200当发现关机充电异常时,将所述智能设备调整至运行状态,从所述可访问分区导出所述智能设备的内核日志和所述管理关机充电模式的应用程序日志,以协助分析关机充电异常。
具体的,当发现充电异常时,只需将对应的日志导出来,即可进行关机充电异常的问题进行分析,进而针对性的进行修复。
示例性的,保存在机器中,如data下,然后正常开机进入系统后,可连接拷贝出来,或者调试阶段可使用adb命令直接导出。保存就是实时读取和实时写入,这样不管什么时候断电,它都会保存在机器即智能设备里面,不会丢失。
示例性的,关机充电模式,是在智能设备没有开机的情况下插入充电器进入的一个充电模式,其实智能设备也是跑了一个小系统的,然后这个小系统就是只有充电动画而已。然后在这个小系统里面可以动态写data分区下的文件。后面要拷贝文件中的日志的时候,就按键使得智能设备开机进入正常的系统了,智能设备就不在关机充电模式下了,就可以对data分区下的文件执行拷贝动作。因为之前在关机充电模式下保存的日志已经存在data下了。
本方案通过诊断关机状态下的系统信息即上述日志,然后通过这个信息分析充电异常。
S300在退出所述关机充电模式时,将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行重命名,以使所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行迭代更新。
通过上述方案,在关机充电模式退出时,对保存的日志重新命名,防止不小心覆盖异常的日志,以提供数据的准确性,进而提高分析关机充电异常的准确性。
根据上述实施例,如图3所示,本实施例中关于步骤S300中的所述将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行重命名,具体包括步骤:
S301查看所述可访问分区是否保存了所述智能设备的内核日志和所述管理关机充电模式的应用程序日志。
S302当保存了所述智能设备的内核日志和所述管理关机充电模式的应用程序日志时,获取所述智能设备的内核日志和所述管理关机充电模式的应用程序日志的数量。
S303当所述智能设备的内核日志和所述管理关机充电模式的应用程序日志的数量超过对应的预设数量时,分别删除所述智能设备的内核日志和所述管理关机充电模式的应用程序日志中对应的保存时间最早的日志。
S304分别调整所述智能设备的内核日志文件和所述管理关机充电模式的应用程序日志文件中存留的日志的编号。
示例性的,在关机充电模式退出的时候,将保存的日志重新命名。命名的流程如下:看当下是否有保存了的日志,并判断看有多少份日志,如果超过5份日志,则删除最后一份日志,然后将其他对应的日志编号加1,如:last_log_1.txt->last_log_2.txt,这样,以此类推。这样保存,是为了防止不小心将异常的log给覆盖了,因此保存多了几份日志。
通过上述方案,在关机充电模式退出时,对保存的日志重新命名,防止不小心覆盖异常的日志,以提供数据的准确性,进而提高分析关机充电异常的准确性。
另一方面,如图4所示,本发明还提供一种协助分析关机充电异常的装置,包括:
读取模块401,用于在关机充电模式下,实时读取智能设备的内核日志和管理关机充电模式的应用程序日志,并将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志以实时保存至可访问分区。
分析模块402,用于当发现关机充电异常时,将所述智能设备调整至运行状态,从所述可访问分区导出所述智能设备的内核日志和所述管理关机充电模式的应用程序日志,以协助分析关机充电异常。
进一步优选地,所述读取模块401还用于:
在开机模式下,当Linux文件系统下的kmsg文件实时输出内核日志时,以pollwait读取方式对kmsg文件进行读取,以得到所述内核日志。
进一步优选地,所述读取模块还用于:
在关机充电模式下,创建读取所述内核日志的线程。
通过所述线程阻塞读取所述kmsg文件中所述内核日志,并实时保存在所述可访问分区的内核日志文件中。
进一步优选地,所述读取模块401还用于:
创建所述管理关机充电模式的应用程序日志的线程,在所述管理关机充电模式的应用程序日志的线程中创建管道。
利用所述管道获取通过printf输出到stderr和stdout的管理关机充电模式的应用程序日志。
将所述管理关机充电模式的应用程序日志实时保存至所述可访问分区的管理关机充电模式的应用程序日志文件中。
根据上述实施例,所述智能设备还包括:
更新模块,用于在退出所述关机充电模式时,将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行重命名,以使所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行迭代更新。
进一步优选地,所述更新模块,还用于:
查看所述可访问分区是否保存了所述智能设备的内核日志和所述管理关机充电模式的应用程序日志。
当保存了所述智能设备的内核日志和所述管理关机充电模式的应用程序日志时,获取所述智能设备的内核日志和所述管理关机充电模式的应用程序日志的数量。
当所述智能设备的内核日志和所述管理关机充电模式的应用程序日志的数量超过对应的预设数量时,分别删除所述智能设备的内核日志和所述管理关机充电模式的应用程序日志中对应的保存时间最早的日志。
分别调整所述智能设备的内核日志文件和所述管理关机充电模式的应用程序日志文件中存留的日志的编号。
示例性的,在关机充电模式退出的时候,将保存的日志重新命名。命名的流程如下:看当下是否有保存了的日志,并判断看有多少份日志,如果超过5份日志,则删除最后一份日志,然后将其他对应的日志编号加1,如:last_log_1.txt->last_log_2.txt,这样,以此类推。这样保存,是为了防止不小心将异常的log给覆盖了,因此保存多了几份日志。
通过上述方案,在关机充电模式退出时,对保存的日志重新命名,防止不小心覆盖异常的日志,以提供数据的准确性,进而提高分析关机充电异常的准确性。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其他的方式实现。示例性的,以上所描述的系统实施例仅仅是示意性的,示例性的,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,示例性的,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性、机械或其他的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可能集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种协助分析关机充电异常的方法,其特征在于,包括以下步骤:
在关机充电模式下,实时读取智能设备的内核日志和管理关机充电模式的应用程序日志,并将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志实时保存至可访问分区;所述在关机充电模式下,实时读取管理关机充电模式的应用程序日志,并将所述管理关机充电模式的应用程序日志实时保存至可访问分区,包括步骤:通过printf将所述管理关机充电模式的应用程序日志输出到stderr和stdout中;创建所述管理关机充电模式的应用程序日志的线程,在所述管理关机充电模式的应用程序日志的线程中创建管道;利用所述管道获取所述stderr和stdout中的管理关机充电模式的应用程序日志,并将所述管理关机充电模式的应用程序日志实时保存至所述可访问分区的管理关机充电模式的应用程序日志文件中;
当发现关机充电异常时,将所述智能设备调整至运行状态,从所述可访问分区导出所述智能设备的内核日志和所述管理关机充电模式的应用程序日志,以协助分析关机充电异常。
2.根据权利要求1所述协助分析关机充电异常的方法,其特征在于,在所述在关机充电模式下,实时读取智能设备的内核日志之前,包括步骤:
在开机模式下,当Linux文件系统下的kmsg文件实时输出内核日志时,以pollwait读取方式对所述kmsg文件进行读取,以使所述内核日志保存至所述kmsg文件中。
3.根据权利要求2所述协助分析关机充电异常的方法,其特征在于,所述在关机充电模式下,实时读取智能设备的内核日志,并将所述内核日志实时保存至可访问分区,包括步骤:
在关机充电模式下,创建读取所述内核日志的线程;
通过所述线程阻塞读取所述kmsg文件中所述内核日志,并将所述内核日志实时保存至所述可访问分区的内核日志文件中。
4.根据权利要求1~3中任一项所述协助分析关机充电异常的方法,其特征在于,还包括步骤:
在退出所述关机充电模式时,将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行重命名,以使所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行迭代更新。
5.根据权利要求4所述协助分析关机充电异常的方法,其特征在于,所述将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志进行重命名,具体包括步骤:
查看所述可访问分区是否保存了所述智能设备的内核日志和所述管理关机充电模式的应用程序日志;
当保存了所述智能设备的内核日志和所述管理关机充电模式的应用程序日志时,获取所述智能设备的内核日志和所述管理关机充电模式的应用程序日志的数量;
当所述智能设备的内核日志和所述管理关机充电模式的应用程序日志的数量超过对应的预设数量时,分别删除所述智能设备的内核日志和所述管理关机充电模式的应用程序日志中对应的保存时间最早的日志;
分别调整所述智能设备的内核日志文件和所述管理关机充电模式的应用程序日志文件中存留的日志的编号。
6.一种协助分析关机充电异常的装置,其特征在于,包括:
读取模块,用于在关机充电模式下,实时读取智能设备的内核日志和管理关机充电模式的应用程序日志,并将所述智能设备的内核日志和所述管理关机充电模式的应用程序日志以实时保存至可访问分区;
所述读取模块还用于:
创建所述管理关机充电模式的应用程序日志的线程,在所述管理关机充电模式的应用程序日志的线程中创建管道;
利用所述管道获取通过printf输出到stderr和stdout的管理关机充电模式的应用程序日志;
将所述管理关机充电模式的应用程序日志实时保存至所述可访问分区的管理关机充电模式的应用程序日志文件中;
分析模块,用于当发现关机充电异常时,将所述智能设备调整至运行状态,从所述可访问分区导出所述智能设备的内核日志和所述管理关机充电模式的应用程序日志,以协助分析关机充电异常。
7.根据权利要求6所述协助分析关机充电异常的装置,其特征在于,所述读取模块还用于:
在开机模式下,当Linux文件系统下的kmsg文件实时输出内核日志时,以pollwait读取方式对kmsg文件进行读取,以得到所述内核日志。
8.根据权利要求7所述协助分析关机充电异常的装置,其特征在于,所述读取模块还用于:
在关机充电模式下,创建读取所述内核日志的线程;
通过所述线程阻塞读取所述kmsg文件中所述内核日志,并实时保存在所述可访问分区的内核日志文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010564039.1A CN111708688B (zh) | 2020-06-19 | 2020-06-19 | 一种协助分析关机充电异常的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010564039.1A CN111708688B (zh) | 2020-06-19 | 2020-06-19 | 一种协助分析关机充电异常的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111708688A CN111708688A (zh) | 2020-09-25 |
CN111708688B true CN111708688B (zh) | 2023-05-23 |
Family
ID=72541173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010564039.1A Active CN111708688B (zh) | 2020-06-19 | 2020-06-19 | 一种协助分析关机充电异常的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708688B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377719B (zh) * | 2021-06-02 | 2023-12-19 | 北京鼎普科技股份有限公司 | 一种系统异常关机时间获取方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7457991B1 (en) * | 2002-12-03 | 2008-11-25 | Unisys Corporation | Method for scanning windows event logs on a cellular multi-processor (CMP) server |
CN105573728A (zh) * | 2014-10-13 | 2016-05-11 | 航天信息股份有限公司 | 基于android系统的充电器探测及上报方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103809989B (zh) * | 2012-11-08 | 2017-07-11 | 英华达(南京)科技有限公司 | 操作系统发生核心崩溃情况下读取完整核心日志的方法 |
CN104979867A (zh) * | 2015-02-11 | 2015-10-14 | 努比亚技术有限公司 | 一种移动终端的充电管理方法及装置 |
CN108388496A (zh) * | 2018-01-23 | 2018-08-10 | 晶晨半导体(上海)股份有限公司 | 一种系统日志的收集方法 |
CN109471666A (zh) * | 2018-11-02 | 2019-03-15 | 北京小米移动软件有限公司 | 充电开机处理方法、设备及存储介质 |
CN110413497B (zh) * | 2019-07-30 | 2024-02-13 | Oppo广东移动通信有限公司 | 异常监控方法、装置、终端设备及计算机可读存储介质 |
-
2020
- 2020-06-19 CN CN202010564039.1A patent/CN111708688B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7457991B1 (en) * | 2002-12-03 | 2008-11-25 | Unisys Corporation | Method for scanning windows event logs on a cellular multi-processor (CMP) server |
CN105573728A (zh) * | 2014-10-13 | 2016-05-11 | 航天信息股份有限公司 | 基于android系统的充电器探测及上报方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111708688A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108614718B (zh) | 启动操作系统的方法、装置和实现装置 | |
CN100517246C (zh) | 一种计算机远程控制方法及系统 | |
JP3629517B2 (ja) | 情報処理装置のブートデバイス切替方法。 | |
CN104572387A (zh) | 一种工程模式下调试终端的方法及装置 | |
CN104516800A (zh) | 服务器主板诊断的方法、系统和相关电路系统 | |
CN112099843A (zh) | 代码托管平台管理方法、装置、计算机设备及存储介质 | |
CN111708688B (zh) | 一种协助分析关机充电异常的方法和装置 | |
CN102455952B (zh) | 一种数据备份与还原方法、装置及系统 | |
CN103092718A (zh) | 测试数据备份系统及方法 | |
CN111597089B (zh) | 一种Linux系统调用事件采集和缓存装置及方法 | |
CN112559140A (zh) | 数据一致性的事务控制方法、系统、设备及存储介质 | |
CN105512562A (zh) | 一种漏洞挖掘方法、装置及电子设备 | |
CN105045627A (zh) | 一种实现服务器在线更新网卡配置文件的方法 | |
CN106909382B (zh) | 输出不同类型系统启动信息的方法及装置 | |
CN111198832B (zh) | 一种处理方法和电子设备 | |
CN111176924B (zh) | 一种gpu掉卡模拟方法、系统、终端及存储介质 | |
JP2006338229A (ja) | Smpライセンス情報を有する情報処理装置 | |
CN102799449B (zh) | 多系统启动方法及其系统 | |
CN116700801A (zh) | 配置信息的管理方法、装置及服务器 | |
CN112231159B (zh) | 一种内存安装位置测试方法、系统、终端及存储介质 | |
CN205563583U (zh) | 批量硬盘数据销毁、坏道隔离及验证数据残留的系统 | |
CN113867810A (zh) | 一种查看服务器硬盘拓扑的方法、装置、终端及存储介质 | |
CN114218001A (zh) | 故障修复方法、装置、电子设备及可读存储介质 | |
CN112486785A (zh) | 一种服务器定位宕机阶段的方法、系统、终端及存储介质 | |
CN109783031B (zh) | 用于RAID卡的盘符和slot号校验方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |