一种日志信息的处理方法和装置的制造方法

文档序号:10612712阅读:215来源:国知局
一种日志信息的处理方法和装置的制造方法
【专利摘要】本发明实施例提供了一种日志信息的处理方法和装置,以解决无法分析随机偶发性状况的问题。所述的方法包括:在被监控目标中创建活动监视变量并注册至少一个开关,其中,所述开关用于控制日志输出;所述被监控目标的第一进程按照预置规则对所述活动监视变量的变量值进行更新;第二进程检测到所述活动监视变量的变量值未按照预置规则执行更新时,将所述开关的开关量配置为输出日志对应的开关量,其中,所述第二进程用于对第一进程进行监控;所述第一进程在运行时若检测到所述开关的开关量为输出日志对应的开关量时,被监控目标输出相应的日志信息。在运行过程中动态改变日志信息记录和输出的内容,以通过动态输出日志实现对随机偶发性问题的分析。
【专利说明】
一种日志信息的处理方法和装置
技术领域
[0001]本发明涉及互联网技术领域,特别是涉及一种日志信息的处理方法和一种日志信息的处理装置。
【背景技术】
[0002]在软件系统的开发过程中,系统越庞大和复杂,出现问题的概率就会呈现非线性的增长,此时日志(log)信息对于问题的定位和分析解决起着至关重要的作用,尤其是软件系统成为产品的一部分被发布到用户手中实际使用过程中时,用户往往只能够反应问题的表面现象,要深入分析到问题的内部原因还得依据现场保留的日志信息。从理论上讲,日志信息越详细越好,但是负面影响是消耗系统性能和占用系统存储空间,因此,如何最大化日志信息的记录和最小化日志信息的性能影响是一个追求的目标。
[0003]传统的通过将日志信息功能模块编译进软件运行系统,程序启动时读取配置文件或者是启动参数来确定哪些日志信息需要记录和输出,可以从一定程度上避免大量日志信息的性能消耗,同时挑选一些重要的信息予以记录和输出。但想改变日志信息记录和输出的内容时必须重新启动程序,同时也不能在运行过程中动态改变日志信息记录和输出的内容,无法分析随机偶发性问题。

【发明内容】

[0004]本发明实施例所要解决的技术问题是提供一种日志信息的处理方法,以解决无法分析随机偶发性状况的问题。
[0005]相应的,本发明实施例还提供了一种日志信息的处理装置,用以保证上述方法的实现及应用。
[0006]为了解决上述问题,本发明实施例公开了一种日志信息的处理方法,所述的方法包括:在被监控目标中创建活动监视变量并注册至少一个开关,其中,所述开关用于控制日志输出;所述被监控目标的第一进程按照预置规则对所述活动监视变量的变量值进行更新;第二进程检测到所述活动监视变量的变量值未按照预置规则执行更新时,将所述开关的开关量配置为输出日志对应的开关量,其中,所述第二进程用于对第一进程进行监控;所述第一进程在运行时若检测到所述开关的开关量为输出日志对应的开关量时,被监控目标输出相应的日志信息。
[0007]本发明实施例还公开了一种日志信息的处理装置,所述的装置包括:创建与注册模块,用于在被监控目标中创建活动监视变量并注册至少一个开关,其中,所述开关用于控制日志输出;监视模块,用于所述被监控目标的第一进程按照预置规则对所述活动监视变量的变量值进行更新;配置模块,用于第二进程检测到所述活动监视变量的变量值未按照预置规则执行更新时,将所述开关的开关量配置为输出日志对应的开关量,其中,所述第二进程用于对第一进程进行监控;输出模块,用于所述第一进程在运行时若检测到所述开关的开关量为输出日志对应的开关量时,被监控目标输出相应的日志信息。
[0008]与现有技术相比,本发明实施例包括以下优点:
[0009]本申请提供的日志信息的处理方法和装置,能够在被监控目标中创建活动监视变量并注册至少一个开关,如果活动监视变量出现异常就改变开关的开关量,使开关的开关量配置为输出日志对应的开关量,输出日志信息。可以在运行过程中动态改变日志信息记录和输出的内容,以通过动态输出日志实现对随机偶发性问题的分析。
【附图说明】
[0010]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0011]图1是本发明的一种日志信息的处理方法实施例的步骤流程图;
[0012]图2是本发明的另一种日志信息的处理方法实施例的步骤流程图;
[0013]图3是本发明的一种日志信息的处理装置实施例的结构框图;
[0014]图4是本发明的另一种日志信息的处理装置实施例的结构框图。
【具体实施方式】
[0015]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0016]本发明实施例的核心构思之一在于,提供一种日志信息的处理方法和装置,能够在被监控目标中创建活动监视变量并注册至少一个开关,如果活动监视变量出现异常就改变开关的开关量,使开关的开关量配置为输出日志对应的开关量,输出日志信息。可以在运行过程中动态改变日志信息记录和输出的内容,以通过动态输出日志实现对随机偶发性问题的分析。
[0017]实施例一
[0018]详细介绍本发明实施例的日志信息的处理方法。
[0019]参照图1,示出了本发明的一种日志信息的处理方法实施例的步骤流程图,具体可以包括如下步骤:
[0020]步骤S102、在被监控目标中创建活动监视变量并注册至少一个开关,其中,所述开关用于控制日志输出。
[0021]被监控目标包括软件、操作系统等计算机程序,被监控目标在开发或使用过程中可能会出现一些问题,被监控目标越庞大、复杂,出现问题的概率就会呈现非线性的增长。要深入分析问题的内部原因,就需要确定被监控目标在执行过程中记录的日志信息,即依据日志信息分析被监控目标的问题。为了能够尽量详细的记录日志信息,且尽量减少对系统性能的消耗以及对系统存储空间的占用,本实施例在被监控目标中创建活动监视变量并且注册至少一个开关。其中,将开关设置在被监控目标的一些关键位置,通过开关的开关量控制相应位置日志输入与否。并且基于活动监视变量对应变量值的变化反映被监控目标中相应功能模块的运行情况。活动监视变量变化异常时,可以控制部分或全部开关开启,进行日志输出,但是各活动监视变量对应开启的开关与实际需求相关,如全部开启,或者开启与该活动监视变量相关的位置的开关,本发明实施例对此不做限定。
[0022]步骤S104、所述被监控目标的第一进程按照预置规则对所述活动监视变量的变量值进行更新。
[0023]被监控目标包含至少一个进程,根据需求选定某个进程为第一进程,如将被监控目标的主进程作为第一进程。被监控目标中的第一进程在运行的过程中能够实现相应的功能,每个功能可以通过相应的操作步骤执行来实现,为了检测各功能的操作步骤是否正常执行,可以按照预置规则对该功能对应的活动监视变量的变量值进行更新,通过变量值确定步骤的执行过程。
[0024]步骤S106、第二进程检测到所述活动监视变量的变量值未按照预置规则执行更新时,将所述开关的开关量配置为输出日志对应的开关量。
[0025]第二进程可以是被监控目标中的一个进程,也可以是在被监控目标以外的一个单独的进程。第二进程能够对被监控目标进行监控,即第二进程对所述第一进程进行监控,从而监控活动监视变量的变量值是否按照预置规则执行更新,当活动监视变量的变量值未按照预置规则执行更新时,表征被监控目标在运行过程中出现问题,第二进程可以通过控制开关的开启和关闭来控制被监控目标的日志的动态输出,因此可以在确定被监控目标的运行出现问题时,将全部或部分开关的开关量配置为输出日志对应的开关量,从而控制日志输出,以便于后续定位问题。
[0026]步骤S108、所述第一进程在运行时若检测到所述开关的开关量为输出日志对应的开关量时,被监控目标输出相应的日志信息。
[0027]第一进程运行时执行相应模块、功能的过程中会检测在其位置处配置的开关是否开启,若检测到开关开启即该开关的开关量为输出日志对应的开关量,则在该过程中输出相应的日志信息,从而通过开关量的变更可以动态调整被监控目标中日志的输出。
[0028]综上所述,在被监控目标中创建活动监视变量并注册至少一个开关,能够在活动监视变量出现异常时改变开关的开关量,使开关的开关量配置为输出日志对应的开关量,在被监控目标运行的相应过程时输出日志信息。从而在运行过程中动态控制被监控目标中日志信息记录和输出,能够有效的对随机偶发性问题进行记录以便后续分析使用。
[0029]实施例二
[0030]详细介绍本发明实施例的另一种日志信息的处理方法。
[0031]参照图2,示出了本发明的另一种日志信息的处理方法实施例的步骤流程图,具体可以包括如下步骤:
[0032]步骤S202、在被监控目标中创建活动监视变量。
[0033]为了能够在被监控目标的运行出现问题时控制日志输出以定位问题,可以在被监控目标中创建活动监视变量,例如针对被监控目标中某个功能或模块实现的操作步骤创建活动监视变量。其中创建活动监视变量包括以下子步骤:
[0034]子步骤S20202、在被监控目标的第一进程中创建活动监视变量。
[0035]子步骤S20204、接收返回的所述活动监视变量对应的第一内存地址。
[0036]子步骤S20206、所述第一内存地址中配置所述活动监视变量的变量值。
[0037]本实施例中,可以通过相应的应用程序编程接口(Applicat1n ProgrammingInterface, API)创建活动监视变量。例如通过LogSw_RegSw创建活动监视变量soft_watch_dogl,如配置 PVOID pSoftWatchDogVar = LogSw_RegSw ( “soft_watch_dogl”)。
[0038]为创建的活动监视变量分配一个第一内存地址,用于存储活动监视变量的变量值,接收所述活动监视变量对应的第一内存地址,在第一内存地址中配置所述活动监视变量的变量值。其中,活动监视变量能够表征被监控目标中功能的运行情况,因此其内存地址所存储的变量值是可变的。
[0039]步骤S204、在被监控目标中注册至少一个开关。
[0040]本实施例为了便于分析随机偶发性问题,选择在被监控目标运行过程中动态控制日志的输出。通过在被监控目标的至少一个进程中注册开关,用于出现异常时控制日志信息的输出。其中注册开关具体可以包括以下子步骤:
[0041]子步骤S20402、在被监控目标的至少一个进程中注册开关。
[0042]子步骤S20404、接收返回的开关的开关名称对应的第二内存地址。
[0043]子步骤S20406、所述第二内存地址中配置逻辑量或整数量作为所述开关名称对应的开关量。
[0044]子步骤S20408、所述第二内存地址中配置所述被监控目标预定数据结构的内存起始地址作为所述开关名称对应的开关量,其中,所述数据结构包含成员值。
[0045]本实施例中,同样可以采用API如LogSw_RegSw创建开关,在创建开关时创建相应的开关名称以及其他信息,如PVOID LogSw_RegSw(String strName)。开关用于控制日志信息输出,可以控制一部分或者全部日志信息,可以基于对该开关的定义确定,例如,采用开关LogSw_All控制全部日志信息,开关LogSw_NetworkCommunicat1n、LogSw_I2cCommunicat1nStatus控制输出部分日志信息。其中,开关输出日志功能的有效性不依赖于被监控目标的运行状态或被监控目标是否存在。
[0046]注册每一个开关都有对应的开关名称,开关名称可以用一个字符串表示,比如LogFile10可以为每一个开关名称分配一个有效的第二内存地址,该第二内存地址中存储该开关名称对应的开关量。若注册某一开关名称时该开关名称已注册,则可以直接返回已分配的第二内存地址,可以基于该第二内存地址内存储的开关量确定是否输出日志。
[0047]在第二内存地址中配置开关量,开关量可以被配置为逻辑量或整数量,针对逻辑量可以设置为O或I,也可以用FALSE或者TRUE等逻辑值表示,通过控制开关量控制日志信息的输出,例如O或者FALSE代表不输出日志信息,I或者TRUE代表输出日志信息。而设置为整数量可以控制日志信息输出的级别或是其他信息,比如设置为整数量包括I至7,开关量可以是I值7中任一值。
[0048]本发明实施例通过开关在被监控目标运行过程出现异常时可以动态控制日志信息的输出。但是有时会由于一些原因例如公共部分发生线程死锁导致被监控目标没有输出日志信息,此时为了能够记录当时被监控目标的运行情况,从而分析出现异常的原因,可以将被监控目标的重要数据结构的内存起始地址作为某个开关名称对应的开关量,存储在第二内存地址中,数据结构包含成员值。其中,由于内存起始地址所占空间比较小,可以保存在第二内存地址中。根据该内存起始地址可获取预定重要数据结构的成员值。
[0049]又如,通过“LogSw Library”实现一些简单操作的API接口,
[0050]Il注册开关
[0051]PVOID LogSw_RegSw(String strName);
[0052]//取得开关个数,个数返回到*pSwCnt。
[0053]INT LogSw_GetSwCnt (OUT INT*pSwCnt);
[0054]Η取得单个开关信息,输入Switch的id,获取其名称和量值。
[0055]INT LogSw_GetSwInfo(IN INT iSwId,OUT LPSTR pszSwNameBuf, size_tsizeSwNameBuf,
[0056]OUT INT*pVal);
[0057]第一进程通常仅需使用LogSW_RegSW注册开关和使用其返回的第二内存地址指向的值进行判断即可。
[0058]从而在注册活动监视变量和开关之后,能够通过活动监视变量和开关动态控制日志的输出。
[0059]本实施例中,为被监控目标的日志输出提供了多种机制,例如通过日志输出机制控制被监控目标在重启后是否保留先前的开关量等。因此可以在第一进程在初始化时对日志输出机制进行选择,包括以下两个步骤:
[0060]步骤S206、当选择第一日志输出机制时,从指定存储路径对应的文件中获取所述开关名称的开关量。
[0061]步骤S208、当选择第二日志输出机制时,将所述开关名称的开关量配置为初始化值。
[0062]本实施例中,将第一日志输出机制作为保留原数据的机制,选择第一日志输出机制时被监控目标在重启后仍然保留先前的开关量;而第二日志输出机制为重启后回归到初始化的机制,即选择第二日志输出机制时被监控目标在重启后不会保留先前的开关量。
[0063]例如,进程之间的数据共享采用linux kernel提供的Shared Memory和FileMapping机制,其中,使用Shared Memory机制时,对Log Switch的状态不做保存,需要应用程序在初始化时设置初始状态值,适合于默认为不记录任何日志信息的场合;使用FileMapping机制,Log Switch的状态数据会被保存在某一指定存储路径对应的文件中,系统重启后通过指定存储路径查找该文件后,可以基于文件使用上次运行的状态。当然,针对FileMapping若制定存储路径为一临时目录,比如/tmp下,也能起到Shared Memory类似的临时保存的效果。
[0064]将所述SharedMemory作为第二日志输出机制,将Fi IeMapping作为第一日志输出机制,则第一进程在初始化时通过选择使用SharedMemory还是FileMapping(默认SharedMemory),既可以确定该被监控目标在前一次的运行过程中配置的开关量是否有效,本次运行过程中是否记录开关量等,如需要保留前次的开关量则使用FileMapping,反之,每次启动后都初始化到原始设定的开关量则使用SharedMmeory。即在选择第一日志输出机制时,初始从指定存储路径对应的文件中获取所述开关名称的开关量,运行过程中对于开关量的变更也会存储到该文件中。而在选择第二日志输出机制时,初始将所述开关名称的开关量配置为初始化值,而在其运行过程中对开关量的变更进行缓存,重启后缓存的内容会删除不保留。
[0065]步骤S210、所述被监控目标的第一进程按照预置规则对所述活动监视变量的变量值进行更新。
[0066]被监控目标中的第一进程在运行的过程中能够实现相应的功能,每个功能可以通过相应的操作步骤执行来实现,为了检测各功能的操作步骤是否正常执行,可以按照预置规则对该功能对应的活动监视变量的变量值进行更新,通过变量值确定步骤的执行过程。例如,第一进程在执行被监控目标中功能时,依据功能的执行步骤对其对应的活动监视变量进行更新,如执行第一个步骤时,配置*pSoftWatchDogVar = 0,执行第二个步骤时配置*pSoftWatchDogVar = 1,依次类推,如总共有6个步骤循环执行,则监视活动变量的变量值按照0->1->2->3->4->5->0->1…的规律依次更新。
[0067]步骤S212、第二进程检测活动监视变量的变量值是否按照预置规则执行更新。
[0068]在第一进程执行被监控目标中各种功能时,第二进程可以对其监控以便在发生偶发性问题时能够及时控制日志输出,因此,第二进程检测活动监视变量的变量值是否按照预置规则执行更新,即通过对活动监视变量的变量值的检测,确定相应功能是否按照步骤执行。
[0069]若是,即第二进程检测活动监视变量的变量值按照预置规则执行更新,表征功能的步骤执行正常,可以返回步骤S212继续检测。
[0070]若否,即第二进程检测活动监视变量的变量值未按照预置规则执行更新,表征相应功能未正常执行,可以执行步骤S214。
[0071]步骤S214、将所述开关的开关量配置为输出日志对应的开关量。
[0072]第二进程通过一个API获得所述活动监视变量的变量值,定期观察其值的变化是否按照实现某功能的操作步骤来进行,其中,第二进程观察活动监视变量:
[0073]PVOID PSoftffatchDogVar = LogSw_RegSw( “soft_watch_dogl”);
[0074]if (I == ^pSoftffatchDogVar)
[0075]…
[0076]else if (2 == ^pSoftffatchDogVar)
[0077]...0
[0078]如上例循环更新的规律为:0->1->2->3->4->5->0->1...。例如在执行完第二步骤时,变量值为1,此后应该执行第三步骤相应变量值调整为2,但是由于某些问题导致变量值始终保持为1,即变量值没有按照预置规则执行更新,此时可能是被监控目标出现问题,将所述开关的开关量配置为输出日志对应的开关量。若活动监视变量的变量值没有按照预置规则执行更新时,将所述开关的开关量配置为输出日志对应的开关量,例如开关量为逻辑量时,将开关量配置为I或者TRUE,开关量为整数量时,将开关量置为最大化调试信息的值。
[0079]例如,改变开关量的值可以通过如下方式实现,INT LogSw_SetSw(String, strName, INT iValue)。又如通过提供一个实用工具程序,从命令行查询和改变开关量的值,比如:LogSw - list,又如 LogSw〈Name> [〈Value〉]。
[0080]从而通过改变被监控目标中各种开关的变量值控制日志输出,其中,但是各异常活动监视变量对应配置开关与实际需求相关,如全部配置为输出日志对应的开关量,或者配置与该活动监视变量相关位置的开关为输出日志对应的开关量,以便于后续依据日志排查问题。
[0081]步骤S216、所述第一进程在运行时若检测到所述开关为输出日志对应的开关量时,被监控目标输出相应的日志信息。
[0082]第一进程运行时检测开关的开关量,若检测到所述开关为输出日志对应的开关量,被监控目标输出这些开关所控制的日志信息。根据输出的日志信息就可以识别问题发生的局部范围点。
[0083]本实施例中,第一进程对被监控目标中开关的引用判断不超过2个CPU指令,其中,通常情况下为一个if条件判断语句,延伸到CPU指令就是一条条件判断跳转指令,使得这种性能消耗几乎可以忽略不计。
[0084]本发明的一个可选实施例,当被监控目标应该输出相应的日志信息,却没有任何日志信息输出时,还包括:
[0085]若被监控目标没有任何日志信息输出,第二进程查找存储预定数据结构的内存起始地址的开关名称。读取出所述开关名称中的预定数据结构的内存起始地址。获取该预定数据结构的成员值,得到被监控目标的相关信息。将所述被监控目标的相关信息作为日志
?目息O
[0086]若被监控目标没有任何日志信息输出,很可能是问题发生在公共部分例如线程死锁。由于之前已经把被监控目标重要预定数据结构的内存起始地址作为某个开关名称对应的开关量。因此第二进程可以查找存储预定数据结构的内存起始地址的开关名称。
[0087]根据开关名称到相应的第二内存地址中读取出所述开关名称中的预定数据结构的内存起始地址。根据上述内存起始地址获取该预定数据结构的成员值,得到被监控目标的相关信息。上述被监控目标的相关信息代表被监控目标的运行情况,将所述被监控目标的相关信息作为日志信息。
[0088]本发明的另一个可选实施例,所述若被监控目标没有任何日志信息输出,修改指定数据结构的成员值或重启被监控目标,输出日志信息。
[0089]若被监控目标没有任何日志信息输出,很可能问题发生在公共部分例如线程死锁。此时也可以对第一进程进行追踪,确定出现问题的数据结构修改其成员值。从而解决公共部分的问题如线程死锁等问题使得被监控目标运行,再按上述步骤正常输出日志信息。
[0090]通过上述步骤获取到日志信息后,可以根据日志信息分析被监控目标的问题,从而尽力解决非调试状态下的错误排查和处理。
[0091 ] 综上所述,通过预先把被监控目标预定数据结构的内存起始地址作为一个开关名称的开关量,若被监控目标没有输出日志信息,第二进程可以追踪被监控目标,读取出指定的数据结构,得到被监控目标相关信息作为日志信息。并且可以修改结构体的成员值,或者重启被监控目标,解决被监控目标死锁,从而使被监控目标可以正常输出日志信息。
[0092]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0093]参照图3,示出了本发明一种日志信息的处理装置实施例的结构框图,具体可以包括如下模块:
[0094]创建与注册模块302,监视模块304,配置模块306,以及,输出模块308。
[0095]下面分别介绍各模块的功能以及各模块之间的关系。
[0096]创建与注册模块302,用于在被监控目标中创建活动监视变量并注册至少一个开关,其中,所述开关用于控制日志输出。
[0097]监视模块304,用于所述被监控目标的第一进程按照预置规则对所述活动监视变量的变量值进行更新。
[0098]配置模块306,用于第二进程检测到所述活动监视变量的变量值未按照预置规则执行更新时,将所述开关的开关量配置为输出日志对应的开关量,其中,所述第二进程用于对第一进程进行监控。
[0099]输出模块308,用于所述第一进程在运行时若检测到所述开关的开关量为输出日志对应的开关量时,被监控目标输出相应的日志信息。
[0100]综上所述,在被监控目标中创建活动监视变量并注册至少一个开关,能够在活动监视变量出现异常时改变开关的开关量,使开关的开关量配置为输出日志对应的开关量,在被监控目标运行的相应过程时输出日志信息。从而在运行过程中动态控制被监控目标中日志信息记录和输出,能够有效的对随机偶发性问题进行记录以便后续分析使用。
[0101]参照图4,示出了本发明另一种日志信息的处理装置实施例的结构框图。
[0102]创建与注册模块302,用于在被监控目标中创建活动监视变量并注册至少一个开关,其中,所述开关用于控制日志输出。
[0103]本发明一个可选实施例中,所述创建与注册模块302包括:创建子模块3022和注册子模块3024,其中:
[0104]所述创建子模块3022,用于在被监控目标的第一进程中创建活动监视变量;接收返回的所述活动监视变量对应的第一内存地址;所述第一内存地址中配置所述活动监视变量的变量值。
[0105]所述注册子模块3024,用于在被监控目标的至少一个进程中注册开关;接收返回的开关名称对应的第二内存地址;所述第二内存地址中配置逻辑量或整数量作为所述开关名称对应的开关量。
[0106]所述注册子模块3024,还用于所述第二内存地址中配置所述被监控目标预定数据结构的内存起始地址作为所述开关名称对应的开关量,其中,所述数据结构包含成员值。
[0107]选择模块310,用于所述第一进程在初始化时选择日志输出机制;当选择第一日志输出机制时,从指定存储路径对应的文件中获取所述开关名称的开关量;以及当选择第二曰志输出机制时,将所述开关名称的开关量配置为初始化值。
[0108]监视模块304,用于所述被监控目标的第一进程按照预置规则对所述活动监视变量的变量值进行更新。
[0109]配置模块306,用于第二进程检测到所述活动监视变量的变量值未按照预置规则执行更新时,将所述开关的开关量配置为输出日志对应的开关量。
[0110]输出模块308,用于所述第一进程在运行时若检测到所述开关的开关量为输出日志对应的开关量时,被监控目标输出相应的日志信息。
[0111]本发明的一个可选实施例中,所述装置还包括第一调整模块312以及第二调整模块314,其中:
[0112]第一调整模块,用于若被监控目标没有任何日志信息输出,第二进程查找存储预定数据结构的内存起始地址的开关名称;读取出所述开关名称中的预定数据结构的内存起始地址;获取该预定数据结构的成员值,得到被监控目标的相关信息;将所述被监控目标的相关信息作为日志信息。
[0113]第二调整模块314,用于所述若被监控目标没有任何日志信息输出,修改指定数据结构的成员值或重启被监控目标,输出日志信息。
[0114]综上所述,通过预先把被监控目标预定数据结构的内存起始地址作为一个开关名称的开关量,若被监控目标没有输出日志信息,第二进程可以追踪被监控目标,读取出指定的数据结构,得到被监控目标相关信息作为日志信息。并且可以修改结构体的成员值,或者重启被监控目标,解决被监控目标死锁,从而使被监控目标可以正常输出日志信息。
[0115]对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0116]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0117]本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0118]本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0119]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0120]这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0121]尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0122]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0123]以上对本发明所提供的一种日志信息的处理方法和一种日志信息的处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【主权项】
1.一种日志信息的处理方法,其特征在于,所述的方法包括: 在被监控目标中创建活动监视变量并注册至少一个开关,其中,所述开关用于控制日志输出; 所述被监控目标的第一进程按照预置规则对所述活动监视变量的变量值进行更新; 第二进程检测到所述活动监视变量的变量值未按照预置规则执行更新时,将所述开关的开关量配置为输出日志对应的开关量,其中,所述第二进程用于对第一进程进行监控; 所述第一进程在运行时若检测到所述开关的开关量为输出日志对应的开关量时,被监控目标输出相应的日志信息。2.根据权利要求1所述的方法,其特征在于,在被监控目标中创建活动监视变量的步骤包括: 在被监控目标的第一进程中创建活动监视变量; 接收返回的所述活动监视变量对应的第一内存地址; 所述第一内存地址中配置所述活动监视变量的变量值。3.根据权利要求1所述的方法,其特征在于,在被监控目标中注册至少一个开关的步骤包括: 在被监控目标的至少一个进程中注册开关; 接收返回的开关名称对应的第二内存地址; 所述第二内存地址中配置逻辑量或整数量作为所述开关名称对应的开关量。4.根据权利要求3所述的方法,所述接收返回的开关的开关名称对应的第二内存地址之后,还包括: 所述第二内存地址中配置所述被监控目标预定数据结构的内存起始地址作为所述开关名称对应的开关量,其中,所述数据结构包含成员值。5.根据权利要求4所述的方法,还包括: 若被监控目标没有任何日志信息输出,第二进程查找存储预定数据结构的内存起始地址的开关名称; 读取出所述开关名称中的预定数据结构的内存起始地址; 获取该预定数据结构的成员值,得到被监控目标的相关信息; 将所述被监控目标的相关信息作为日志信息。6.根据权利要求5所述的方法,还包括: 所述若被监控目标没有任何日志信息输出,修改指定数据结构的成员值或重启被监控目标,输出日志信息。7.根据权利要求4所述的方法,还包括: 所述第一进程在初始化时选择日志输出机制; 当选择第一日志输出机制时,从指定存储路径对应的文件中获取所述开关名称的开关量; 当选择第二日志输出机制时,将所述开关名称的开关量配置为初始化值。8.—种日志信息的处理装置,其特征在于,所述的装置包括: 创建与注册模块,用于在被监控目标中创建活动监视变量并注册至少一个开关,其中,所述开关用于控制日志输出; 监视模块,用于所述被监控目标的第一进程按照预置规则对所述活动监视变量的变量值进行更新; 配置模块,用于第二进程检测到所述活动监视变量的变量值未按照预置规则执行更新时,将所述开关的开关量配置为输出日志对应的开关量,其中,所述第二进程用于对第一进程进行监控; 输出模块,用于所述第一进程在运行时若检测到所述开关的开关量为输出日志对应的开关量时,被监控目标输出相应的日志信息。9.根据权利要求8所述的装置,其特征在于,所述创建与注册模块,包括: 创建子模块,用于在被监控目标的第一进程中创建活动监视变量;接收返回的所述活动监视变量对应的第一内存地址;所述第一内存地址中配置所述活动监视变量的变量值。10.根据权利要求8所述的装置,其特征在于,所述创建与注册模块,包括: 注册子模块,用于在被监控目标的至少一个进程中注册开关;接收返回的开关名称对应的第二内存地址;所述第二内存地址中配置逻辑量或整数量作为所述开关名称对应的开关量。11.根据权利要求10所述的装置,其特征在于, 所述注册子模块,还用于所述第二内存地址中配置所述被监控目标预定数据结构的内存起始地址作为所述开关名称对应的开关量,其中,所述数据结构包含成员值。12.根据权利要求11所述的装置,其特征在于,还包括: 第一调整模块,若被监控目标没有任何日志信息输出,第二进程查找存储预定数据结构的内存起始地址的开关名称;读取出所述开关名称中的预定数据结构的内存起始地址;获取该预定数据结构的成员值,得到被监控目标的相关信息;将所述被监控目标的相关信息作为日志信息。13.根据权利要求12所述的装置,其特征在于,还包括: 第二调整模块,用于所述若被监控目标没有任何日志信息输出,修改指定数据结构的成员值或重启被监控目标,输出日志信息。14.根据权利要求11所述的装置,其特征在于,还包括: 选择模块,用于所述第一进程在初始化时选择日志输出机制;当选择第一日志输出机制时,从指定存储路径对应的文件中获取所述开关名称的开关量;以及当选择第二日志输出机制时,将所述开关名称的开关量配置为初始化值。
【文档编号】G06F11/34GK105975383SQ201510626751
【公开日】2016年9月28日
【申请日】2015年9月28日
【发明人】肖荣权
【申请人】乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1