CN107291588B - 一种生成xml日志的方法和装置 - Google Patents

一种生成xml日志的方法和装置 Download PDF

Info

Publication number
CN107291588B
CN107291588B CN201610229167.4A CN201610229167A CN107291588B CN 107291588 B CN107291588 B CN 107291588B CN 201610229167 A CN201610229167 A CN 201610229167A CN 107291588 B CN107291588 B CN 107291588B
Authority
CN
China
Prior art keywords
log node
node
log
error
content
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
Application number
CN201610229167.4A
Other languages
English (en)
Other versions
CN107291588A (zh
Inventor
吕嘉文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Naura Microelectronics Equipment Co Ltd
Original Assignee
Beijing Naura Microelectronics Equipment Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Naura Microelectronics Equipment Co Ltd filed Critical Beijing Naura Microelectronics Equipment Co Ltd
Priority to CN201610229167.4A priority Critical patent/CN107291588B/zh
Publication of CN107291588A publication Critical patent/CN107291588A/zh
Application granted granted Critical
Publication of CN107291588B publication Critical patent/CN107291588B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3086Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves the use of self describing data formats, i.e. metadata, markup languages, human readable formats

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种生成XML日志的方法和装置,该方法包括:接收创建顶层日志节点的指令,创建与指令对应的顶层日志节点,顶层日志节点包括顶层日志节点的内容和xml节点;接收创建子日志节点的指令,创建与创建子日志节点的指令对应的子日志节点,子日志节点包括子日志节点的内容和顶层日志节点传递给子日志节点的xml节点的指针;设置顶层日志节点和子日志节点的出错属性,出错属性用于判断顶层日志节点的内容和子日志节点的内容是否中途出错;检测顶层日志节点的内容和子日志节点的内容是否出错,确定顶层日志节点和子日志节点的出错属性对应状态值。本申请可以通过出错属性对应状态值判断日志节点中途是否出错,从而提高分析日志的效率。

Description

一种生成XML日志的方法和装置
技术领域
本申请涉及计算机技术领域,特别是涉及一种生成XML日志的方法和装置。
背景技术
日志是按照时间顺序记录计算机系统中硬件和软件问题的信息,同时还可以监视计算机系统中发生的事件。可以通过日志来检查计算机系统错误的原因,或者计算机系统在受到攻击时,在日志中寻找攻击者留下的痕迹。
具体而言,通常是将多个线程的多个动作按照时间顺序依次记录在同一个文本文件中,即日志是按照动作执行的时间顺序来记录的。在发生严重安全事件的情况下,采取人工观察的方式分析日志记录,从中获取异常情况。但是,由于计算机系统每天产生大量的日志,很难发现日志中的异常情况。例如,某次测试人员提出大概在七点到八点之间,某些操作出现了某个非预期的结果。但是这样的操作在这段时间内可能出现了上百次,日志量可能在上万行,例如,在2014年10月11日七点34分56秒的时候,日志记录了多个线程的历史操作,在这样的日志堆里分析出想要的信息如大海捞针。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够提高分析日志的效率。
发明内容
本申请提供了一种生成XML日志的方法和装置,以解决如何提高分析日志的效率的问题。
为了解决上述问题,本申请实施例公开了一种生成XML日志的方法,包括:
接收创建顶层日志节点的指令,创建与所述指令对应的顶层日志节点,所述顶层日志节点包括顶层日志节点的内容和xml节点;
接收创建子日志节点的指令,创建与所述创建子日志节点的指令对应的子日志节点,所述子日志节点包括子日志节点的内容和所述顶层日志节点传递给所述子日志节点的xml节点的指针;
设置所述顶层日志节点和所述子日志节点的出错属性,所述出错属性用于判断所述顶层日志节点的内容和所述子日志节点的内容是否中途出错;
检测所述顶层日志节点的内容和所述子日志节点的内容是否出错,确定顶层日志节点和子日志节点的出错属性对应状态值。
可选的,所述检测所述顶层日志节点的内容和所述子日志节点的内容是否出错,包括:判断所述顶层日志节点的内容和所述子日志节点的内容应该存在输出的位置是否存在输出,若不存在输出,则确定所述顶层日志节点的内容和所述子日志节点的内容中途出错。
可选的,所述判断所述顶层日志节点的内容和所述子日志节点的内容应该存在输出的位置是否存在输出,若不存在输出,则确定所述顶层日志节点的内容和所述子日志节点的内容中途出错,包括:
检测顶层日志节点应该存在输出的位置是否存在输出;
若顶层日志节点应该存在输出的位置不存在输出,则检测所述子日志节点应该存在输出的位置是否存在输出;
在所述子日志节点应该存在输出的位置不存在输出时,确定所述顶层日志节点的内容和所述子日志节点的内容中途出错;以及,
在子日志节点应该存在输出的位置存在输出时,确定所述顶层日志节点的内容中途出错。
可选的,所述设置所述顶层日志节点和所述子日志节点的出错属性,包括:为所述顶层日志节点和所述子日志节点配置出错属性;以及,将所述顶层日志节点和所述子日志节点的出错属性对应状态值设置为初始值。
可选的,所述初始值为正常状态值,所述检测所述顶层日志节点的内容和所述子日志节点的内容是否出错,确定顶层日志节点和子日志节点的出错属性对应状态值,还包括:在检测到所述顶层日志节点的内容中途出错时,将所述顶层日志节点的出错属性对应状态值修改为出错状态值;在检测到子日志节点的内容中途出错时,将所述顶层日志节点和子日志节点的出错属性对应状态值修改为出错状态值。
可选的,所述初始值为出错状态值,所述检测所述顶层日志节点的内容和所述子日志节点的内容是否出错,确定顶层日志节点和子日志节点的出错属性对应状态值,还包括:在检测到子日志节点的内容没有出错时,将所述子日志节点的出错属性对应状态值修改为正常状态值;在检测到所述顶层日志节点的内容和子日志节点的内容没有出错时,将所述顶层日志节点的出错属性对应状态值修改为正常状态值。
可选的,包括:各个所述子日志节点按照创建时间的先后顺序排列。
本申请实施例还公开了一种生成XML日志的装置,包括:
顶层日志节点创建模块,用于接收创建顶层日志节点的指令,创建与所述指令对应的顶层日志节点,所述顶层日志节点包括顶层日志节点的内容和xml节点;
子日志节点创建模块,用于接收创建子日志节点的指令,创建与所述创建子日志节点的指令对应的子日志节点,所述子日志节点包括子日志节点的内容和所述顶层日志节点传递给所述子日志节点的xml节点的指针;
出错属性设置模块,用于设置所述顶层日志节点和所述子日志节点的出错属性,所述出错属性用于判断所述顶层日志节点的内容和所述子日志节点的内容是否中途出错;
内容出错检测模块,用于检测所述顶层日志节点的内容和所述子日志节点的内容是否出错,确定顶层日志节点和子日志节点的出错属性对应状态值。
可选的,所述内容出错检测模块,包括:输出判断子模块,用于判断所述顶层日志节点的内容和所述子日志节点的内容应该存在输出的位置是否存在输出,若不存在输出,则确定顶层日志节点的内容和所述子日志节点的内容中途出错。
可选的,输出判断子模块,具体用于检测顶层日志节点应该存在输出的位置是否存在输出;若顶层日志节点应该存在输出的位置不存在输出,则检测所述子日志节点应该存在输出的位置是否存在输出;在所述子日志节点应该存在输出的位置不存在输出时,确定所述顶层日志节点的内容和所述子日志节点的内容中途出错;以及,在子日志节点应该存在输出的位置存在输出时,确定所述顶层日志节点的内容中途出错。
可选的,所述出错属性设置模块,具体用于为所述顶层日志节点和所述子日志节点配置出错属性;以及将所述顶层日志节点和所述子日志节点的出错属性对应状态值设置为初始值。
可选的,所述初始值为正常状态值,所述内容出错检测模块,还包括:状态修改子模块,用于在检测到所述顶层日志节点的内容中途出错时,将所述顶层日志节点的出错属性对应状态值修改为出错状态值;以及,在检测到子日志节点的内容中途出错时,将所述顶层日志节点和子日志节点的出错属性对应状态值修改为出错状态值。
可选的,所述初始值为出错状态值,所述内容出错检测模块,还包括:
状态修改子模块,用于在检测到子日志节点的内容没有出错时,将所述子日志节点的出错属性对应状态值修改为正常状态值;以及在检测到所述顶层日志节点的内容和子日志节点的内容没有出错时,将所述顶层日志节点的出错属性对应状态值修改为正常状态值。
可选的,还包括:排列模块,用于各个所述子日志节点按照创建时间的先后顺序进行排列。
与现有技术相比,本申请提供的技术方案具有以下优点:
创建顶层日志节点和子日志节点,并设置顶层日志节点和子日志节点的出错属性;检测顶层日志节点和子日志节点的内容是否出错,确定顶层日志节点和子日志节点的出错属性对应状态值,从而程序人员可以通过查看顶层日志节点和子日志节点的出错属性对应的状态值来判断日志节点中途是否出错,提高了分析日志的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一种生成XML日志的方法实施例的流程示意图;
图2是本申请的一种生成XML日志的方法优选实施例的步骤流程图;
图3是本申请的一种生成XML日志的方法的步骤示例图示意图;
图4A是本申请实施例的一种生成XML日志的装置的结构示意图;
图4B是本申请实施例的另一种生成XML日志的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
XML(Extensible Markup Language,可扩展标记语言),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是标准通用标记语言(SGML)的子集,非常适合Web传输。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。由于XML在浏览器中具有可折叠的特性,能有效实现将各种非结构化日志数据转换成结构化数据,为日志的分析带来很多方便。
基于上述XML技术本申请提供了一种生成XML日志的方法和装置,以解决如何提高分析日志的效率的问题。
实施例一
参照图1,示出了本申请的一种生成XML日志的方法实施例的流程示意图。
本申请实施例提供了一种生成XML日志的方法,适用于生成海量可分析的日志的情况下,该方法可以由日志分析器来执行,如图1所示,该方法可以包括以下步骤:
步骤S101,接收创建顶层日志节点的指令,创建与指令对应的顶层日志节点,顶层日志节点包括顶层日志节点的内容和xml节点。
本实施可以预先建立一个日志池(又可以称节点池)。其中,该节点池的元素具体可以包括顶层日志节点,如顶层xml节点。当接收到创建顶层日志节点的指令时,可以基于该节点池创建该指令对应的顶层日志节点,即可以通过节点池所保存的元素创建顶层日子节点。该顶层日志节点可以包括顶层日志节点的内容、顶层日志节点所调用的子节点名称、顶层日志节点的名称等。
在本步骤中,创建顶层日志节点的指令可以基于触发事件生成的,该触发事件具体可以包括用户操作事件、定时触发事件。具体的,创建日志节点的指令可以包括用户触发图形界面上显示标识生成的指令,例如,当用户点击图形界面上显示标识funA,可以确定对应的用户操作事件,从而产生创建顶层日志节点funA的指令,使得日志分析器可以接收到创建顶层日志节点funA的指令,即触发日志分析器创建顶层日志节点funA;还可以包括由计时器触发产生的指令,例如,计时器以预先设定的时间间隔向日志分析器发送创建顶层日志节点的指令,从而触发日志分析器创建对应的顶层日志节点。
步骤S102,接收创建子日志节点的指令,创建与所述创建子日志节点的指令对应的子日志节点,所述子日志节点包括子日志节点的内容和所述顶层日志节点传递给所述子日志节点的xml节点的指针。
在本步骤中,当顶层日志节点调用其他日志节点时,可以将调用的日志节点作为该顶层日志节点对应的子日志节点,如在顶层日志节点的子节点属性中设置所调用的子日志节点的名称。当然,本实施例也可以在子日志节点的父节点属性中设置该顶层日志节点的名称,本实施例对此不作限制。具体的,当用户触发的服务或者函数调用其他服务、函数或方法时,可以再创建一个新xml节点,并将这个新创建的xml节点的指针通过参数的方式向下传递。新创建的xml节点可以基于顶层日志节点的调用创建的,并且可以作为顶层日志节点对应的子日志节点。当子日志节点调用其他日志节点时,如在子节点函数再需要调用其他函数时,也通过同样的方式依次传递,从而可以通过xml节点的指针来查看各个日志节点之间的调用关系。例如,在多线程日志中,日志节点funA调用了子日志节点funB和子日志节点funC,则子日志节点funB和子日志节点funC中都包括日志节点funA发送的xml节点的指针。而且,各个子日志节点可以按照创建时间的先后顺序排列。
步骤S103,设置顶层日志节点和子日志节点的出错属性。
出错属性可以用于判断日志节点是否出错,如用于判断顶层日志节点的内容和/或子日志节点的内容是否中途出错。具体的,本实施在创建日志节点时,可以为日志节点配置出错属性;还可以为该出错属性的属性值配置初始值,即将日志节点的出错属性对应状态值设置为初始值。其中,初始值可以是正常状态值,也可以是出错状态值,本实施例对此不作限制。若日志节点的出错属性对应状态值为正常状态值,则可以表示该日志节点的内容没有中途出错;若日志节点的出错属性对应状态值为出错状态值,则可以表示该日志节点的内容中途出错。
作为本申请的一个具体示例,在创建顶层日志节点和子日志节点时,可以为顶层日志节点和子日志节点配置出错属性error,并且还可以将顶层日志节点和子日志节点的出错属性对应状态值设置为初始值,如将error的布尔值设置为false(假)值,即将出错属性的逻辑状态设置为正常状态;或者将error的布尔值设置为true(真)值,即将出错属性的逻辑状态设置为出错状态。以日志节点为funA为例,可以将日志节点funA的属性设置为“false”,表示日志节点funA没有出错,正常运行。
步骤S104,检测顶层日志节点的内容和子日志节点的内容是否出错,确定顶层日志节点和子日志节点的出错属性对应状态值。
在本步骤中,顶层日志节点的内容是在该顶层日志节点下按照时间顺序记录的计算机系统中硬件和软件问题;子日志节点的内容是在该子日志节点下按照时间顺序记录的计算机系统中硬件和软件问题。在本申请实施例中,可以通过判断日志节点的内容应该存在输出的位置是否存在输出来确定日志节点的内容是否出错,若应该存在输出的位置存在输出,则可以确定日志节点的内容未出错;若应该存在输出的位置不存在输出,则可以确定日志节点的内容出错,如将error的布尔值设置为true(真)值,即将出错属性的逻辑状态设置为出错状态,以标识日志节点中途出错。具体的,本实施例可以通过检测顶层日志节点应该存在输出的位置是否存在输出,来判断顶层日志节点的内容是否出错。若顶层日志节点应该存在输出的位置存在输出,则可以确定顶层日志节点的内容未出错,即可以确定该顶层日志节点的出错属性对应状态值为正常状态值,并且还可以确定该顶层日志节点所调用的子日志节点的内容也未出错,即可以确定该顶层日志节点所调用的子日志节点的出错属性对应的状态值为正常状态值。若顶层日志节点应该存在输出的位置不存在输出,则可以确定顶层日志节点的内容中途出错,即可以该顶层日志节点的出错属性对应状态值为出错状态值,并且还可以进一步检测该顶层日志节点所调用的各日志节点应该存在输出的位置是否存在输出;当顶层日志节点所调用的所有子日志节点应该存在输出的位置存在输出时,可以确定顶层日志节点所调用的所有子日志节点的内容未出错,即可以确定所有子日志节点的出错属性对应的状态值为正常状态值,从而可以确定顶层日志节点的自身内容出错;当检测到某一子日志节点应该存在输出的位置不存在输出,可以确定该子日志节点的内容中途出错,即可以确定子日志节点的出错属性对应状态值为出错状态值,从而可以确定该子日志节点的内容出错导致调用其的顶层日志节点的内容出错。
综上,本实施里在创建顶层日志节点和子日志节点时,可以设置顶层日志节点和子日志节点的出错属性,从而可以通过检测顶层日志节点和子日志节点的内容是否出错,来确定顶层日志节点和子日志节点的出错属性对应状态值,即程序人员可以通过查看顶层日志节点和子日志节点的出错属性对应的状态值来判断日志节点中途是否出错,提高了分析日志的效率。
实施例二
参照图2,示出了本申请的一种生成XML日志的方法优选实施例的步骤流程图,具体可以包括如下步骤:
步骤S201,接收创建顶层日志节点的指令,创建与所述指令对应的顶层日志节点.
其中,顶层日志节点具体可以包括顶层日志节点的内容和xml节点。
步骤S202,接收创建子日志节点的指令,创建与所述创建子日志节点的指令对应的子日志节点。
子日志节点具体可以包括子日志节点的内容和所述顶层日志节点传递给所述子日志节点的xml节点的指针。
步骤S203,为所述顶层日志节点和所述子日志节点配置出错属性;以及,将所述顶层日志节点和所述子日志节点的出错属性对应状态值设置为初始值。
步骤S204,检测顶层日志节点应该存在输出的位置是否存在输出。
当顶层日志节点应该存在输出的位置存在输出时,可以确定顶层日志节点和子节点的内容没有出错,跳转到步骤S206执行;当顶层日志节点应该存在输出的位置不存在输出时,可以确定顶层日志节点的内容中途出错,并且还可以进一步检测子日志节点的应该存在输出的位置是否存在输出,以确定子节点的内容是否错,即执行步骤S205。
步骤S205,检测子日志节点应该存在输出的位置是否存在输出。
本实施例中,当所述子日志节点应该存在输出的位置不存在输出时,可以确定所述顶层日志节点的内容和所述子日志节点的内容中途出错;当子日志节点应该存在输出的位置存在输出时,可以确定所述顶层日志节点的内容中途出错。
步骤S206,确定顶层日志节点和子日志节点的出错属性对应状态值。
在本实施例中,若预先设置的初始值为正常状态值,则可以在确定顶层日志节点的内容中途出错时,将所述顶层日志节点的出错属性对应状态值修改为出错状态值;以及,可以在确定子日志节点的内容中途出错时,将所述顶层日志节点和子日志节点的出错属性对应状态值修改为出错状态值。若初始值为出错状态值,则可以在确定子日志节点的内容没有出错时,将所述子日志节点的出错属性对应状态值修改为正常状态值;以及,可以在确定所述顶层日志节点的内容和子日志节点的内容没有出错时,将所述顶层日志节点的出错属性对应状态值修改为正常状态值。例如,顶层日志节点为funA,若funA error=“true”,则标识顶层日志节点funA中途出错,可以将子日志节点funB的属性由funB error=“false”修改为funB error=“true”,以标识funB中途出错。从而程序人员可以通过查看日志节点的属性来判断日志节点是否中途出错。
实施例三
参照图3,示出了本申请的一种生成XML日志的方法的步骤示例图。具体可以包括以下步骤:
步骤S301,依据触发事件生成XML根节点。
具体的,该触发时间可以包括:用户点击图形界面的触发事件、定时器所生成的触发事件。在检测到触发事件时,日志分析器可以确定触发XML日志的方法,即可以通过预先建立的日志池,如XML根节点池,生成XML根节点。
步骤S302,为XML节点配置属性信息。
在生成XML根节点后,日志分析器可以为XML根节点配置属性信息,如设置时间属性、出错属性等,以及为各属性设置对应的初始属性值,如将出错属性的属性值设置为出错状态值,即将出错属性设置为出错。
步骤S303,输出信息,和生成子XML节点。
日志分析器在为XML根节点设置属性信息后,可以输出相应的设置信息,如输出成功创建该日志节点的消息等,以及可以生成子XML节点,如创建顶层日志节点。
步骤S304,判断该子XML节点是否有调用子方法。
当子XML节点有调用子方法时,创建子节点,并该子节点传递给子方法,如创建顶层日志节点所调用的子日志节点,该子日志节点包括子日志节点的内容和顶层日志节点传递给该子日志节点的XML节点的指针,然后通过跳转回到步骤S302执行,从而为子节点配置属性信息。
当子XML节点没有调用子方法时,可以检测各XML节点是否出错,即执行步骤S305。
步骤S305,检测XML节点是否出错。
在本步骤中,可以通过检测各XML节点的函数是否出错,来判定各XML节点是否出错。若函数没有出错,则可以确定该XML节点没有出错,进而将该XML节点的出错属性的属性值修改为正常状态值,以标识该XML节点未出错。若函数出错,则可以保持XML节点的出错属性的属性值不变。
当然,若在为XML节点配置属性信息时,将XML节点的出错属性的属性值设置为正常状态值,则在XML节点的函数出错时,可以将该XML节点的出错属性的属性值修改为出错状态。
下文结合具体应用场景,对本申请实施例进行论述。以多线程日志A为例,在日志A中,分别调用了子方法B和子方法C,子方法C调用了子方法D,子方法D调用了子方法E和子方法F。
创建日志节点funA,且设置日志节点funA的出错属性对应的状态值为正常状态值,如funA error=“false”。当日志节点funA的内容应该存在输出的位置没有输出,可以修改日志节点funA的出错属性对应的状态值,如将funA error=“false”修改为funAerror=“true”。
funA调用子方法B和子方法C。创建子方法B的子节点funB,设置funB的出错属性为funB error=“false”。若子节点funB存在输出,则不需要修改子节点funB的出错属性。创建子方法C的子节点funC,设置funC的出错属性为funC error=“false”,若子节点funC不存在输出,则修改子节点funC的出错属性为funC error=“true”,以表示子节点funC中途出错。
当子节点funC进一步调用子方法D,可以创建子节点funD,设置funD的出错属性为funD error=“false”。若子节点funD存在输出,则不需要修改子节点funD的出错属性。
当子节点funD进一步调用子方法E和子方法F时,可以创建子节点funE,将funE的出错属性设置为funE error=“false”,若子节点funE存在输出,则不需要修改子节点funE的出错属性;以及,创建子节点funF,设置funF的出错属性为funF error=“false”,若子节点funF存在输出,则不需要修改子节点funF的出错属性。综上,日志节点funA和子节点funC中途出错,子节点funB、子节点funD、子节点funE和子节点funF中途未出错,因此可以利用XML在浏览器中具有可折叠的特性,将子节点funB、子节点funD、子节点funE和子节点funF折叠收起,展示折叠后的日志,从而使得程序人员不需要查看全部日志,就可以获得中途出错的日志,提高了分析日志的效率。
实施例四
本申请实施例提供了一种生成XML日志的装置,该装置可以执行上述生成XML日志的方法,如图4A所示,该装置具体包括:
顶层日志节点创建模块41、子日志节点创建模块42、出错属性设置模块43和内容出错检测模块44。
在本申请实施例中,顶层日志节点创建模块41,用于接收创建顶层日志节点的指令,创建与指令对应的顶层日志节点,顶层日志节点包括顶层日志节点的内容和xml节点;子日志节点创建模块42,用于接收创建子日志节点的指令,创建与创建子日志节点的指令对应的子日志节点,子日志节点包括子日志节点的内容和顶层日志节点传递给子日志节点的xml节点的指针;出错属性设置模块43,用于设置顶层日志节点和子日志节点的属性,所述出错属性用于判断所述顶层日志节点的内容和所述子日志节点的内容是否中途出错;内容出错检测模块44,用于判断顶层日志节点的内容和子日志节点的内容是否出错,确定顶层日志节点和子日志节点的出错属性对应状态值。
在顶层日志节点创建模块41中,创建日志节点的指令可以是用户触发图形界面上显示标识生成的指令,例如,用户触发图形界面上显示标识funA,则可以产生创建顶层日志节点funA的指令,从而日志分析器接收到创建顶层日志节点funA的指令。创建日志节点的指令也可是由计时器产生,例如,计时器以预先设定的时间间隔向日志分析器发送创建日志节点的指令。
在子日志节点创建模块42中,当用户触发的服务或者函数调用其他服务、函数或方法时将创建一个新xml节点并将这个新创建的xml节点的指针通过参数的方式向下传递。下层函数再需要调用其他函数时也通过同样的方式依次传递,从而可以通过xml节点的指针来查看各个日志节点之间的调用关系。例如,在多线程日志中,日志节点funA调用了子日志节点funB和子日志节点funC,则子日志节点funB和子日志节点funC中都包括日志节点funA发送的xml节点的指针。而且,各个子日志节点可以按照创建时间的先后顺序排列。
在出错属性设置模块43中,可以为顶层日志节点和子日志节点配置出错属性error,并且还可以将顶层日志节点和子日志节点的出错属性对应状态值设置为初始值,如将error的布尔值设置为false(假)值,即将出错属性的逻辑状态设置为正常状态;或者将error的布尔值设置为true(真)值,即将出错属性的逻辑状态设置为出错状态。以日志节点为funA为例,可以将日志节点funA的出错属性的初始值设置为“false”,即funA error=“false”,表示日志节点funA没有出错,正常运行。
在内容出错检测模块44中,顶层日志节点的内容是,在该顶层日志节点下按照时间顺序记录的计算机系统中硬件和软件问题;子日志节点的内容是在该子日志节点下按照时间顺序记录的计算机系统中硬件和软件问题。在本申请实施例中,可以通过判断日志节点的内容应该存在输出的位置是否存在输出来确定日志节点的内容是否出错,若应该存在输出的为位置存在输出,则可以确定日志节点的内容未出错,进而确定该日志节点的出错属性对应的状态值为正常状态值;若应该存在输出的为位置不存在输出,则可以确定日志节点的内容出错,进而确定该日志节点的出错属性对应的状态值为出错状态值,如可以将日志节点的出错属性error的布尔值修改为true,以标识日志节点中途出错。
本申请实施例提供的一种生成XML日志的装置,通过创建顶层日志节点和子日志节点,并设置顶层日志节点和子日志节点的出错属性;从而可以通过检测顶层日志节点的内容和子日志节点的内容是否出错来确定顶层日志节点和子日志节点的出错属性对应状态值,即程序人员可以通过查看日志节点的属性来判断日志节点中途是否出错,提高了分析日志的效率。
在上述图4A的基础上,可选的,内容出错检测模块44可以包括输出判断子模块441,如图4B所示。
该输出判断子模块441可以用于判断日志节点的内容应该存在输出的位置是否存在输出来确定日志节点的内容是否出错,若应该存在输出的为位置存在输出,则可以确定日志节点的内容未出错。若应该存在输出的为位置不存在输出,则可以确定日志节点的内容出错。具体的,该输出判断子模块441具体可以用于检测顶层日志节点应该存在输出的位置是否存在输出;若顶层日志节点应该存在输出的位置不存在输出,则检测所述子日志节点应该存在输出的位置是否存在输出;在所述子日志节点应该存在输出的位置不存在输出时,确定所述顶层日志节点的内容和所述子日志节点的内容中途出错;以及,在子日志节点应该存在输出的位置存在输出时,确定所述顶层日志节点的内容中途出错。
出错属性设置模块43具体可以用于为所述顶层日志节点和所述子日志节点配置出错属性;以及将所述顶层日志节点和所述子日志节点的出错属性对应状态值设置为初始值。其中,初始值可以是正常状态值,也可以是出错状态值。
所述内容出错检测模块44,还可以包括:状态修改子模块442。
当初始值为正常状态值,状态修改子模块442可以用于在检测到所述顶层日志节点的内容中途出错时,将所述顶层日志节点的出错属性对应状态值修改为出错状态值;以及,在检测到子日志节点的内容中途出错时,将所述顶层日志节点和子日志节点的出错属性对应状态值修改为出错状态值。
当初始值为出错状态值,该状态修改子模块442可以用于在检测到子日志节点的内容没有出错时,将所述子日志节点的出错属性对应状态值修改为正常状态值;以及在检测到所述顶层日志节点的内容和子日志节点的内容没有出错时,将所述顶层日志节点的出错属性对应状态值修改为正常状态值。
该生成XML日志的装置还可以包括排列模块45。该排列模块45可以用于各个所述子日志节点按照创建时间的先后顺序进行排列。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请所提供的一种生成XML日志的方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (14)

1.一种生成XML日志的方法,其特征在于,包括:
接收创建顶层日志节点的指令,创建与所述指令对应的顶层日志节点,所述顶层日志节点包括顶层日志节点的内容和xml节点;
接收创建子日志节点的指令,创建与所述创建子日志节点的指令对应的子日志节点,所述子日志节点包括子日志节点的内容和所述顶层日志节点传递给所述子日志节点的xml节点的指针;
设置所述顶层日志节点和所述子日志节点的出错属性,所述出错属性用于判断所述顶层日志节点的内容和所述子日志节点的内容是否中途出错;
检测所述顶层日志节点的内容和所述子日志节点的内容是否出错,确定顶层日志节点和子日志节点的出错属性对应状态值。
2.根据权利要求1所述的方法,其特征在于,所述检测所述顶层日志节点的内容和所述子日志节点的内容是否出错,包括:
判断所述顶层日志节点的内容和所述子日志节点的内容应该存在输出的位置是否存在输出,若不存在输出,则确定所述顶层日志节点的内容和所述子日志节点的内容中途出错。
3.根据权利要求2所述的方法,其特征在于,所述判断所述顶层日志节点的内容和所述子日志节点的内容应该存在输出的位置是否存在输出,若不存在输出,则确定所述顶层日志节点的内容和所述子日志节点的内容中途出错,包括:
检测顶层日志节点应该存在输出的位置是否存在输出;
若顶层日志节点应该存在输出的位置不存在输出,则检测所述子日志节点应该存在输出的位置是否存在输出;
在所述子日志节点应该存在输出的位置不存在输出时,确定所述顶层日志节点的内容和所述子日志节点的内容中途出错;以及,
在子日志节点应该存在输出的位置存在输出时,确定所述顶层日志节点的内容中途出错。
4.根据权利要求2所述的方法,其特征在于,所述设置所述顶层日志节点和所述子日志节点的出错属性,包括:
为所述顶层日志节点和所述子日志节点配置出错属性;以及,
将所述顶层日志节点和所述子日志节点的出错属性对应状态值设置为初始值。
5.根据权利要求4所述的方法,其特征在于,所述初始值为正常状态值,所述检测所述顶层日志节点的内容和所述子日志节点的内容是否出错,确定顶层日志节点和子日志节点的出错属性对应状态值,还包括:
在检测到所述顶层日志节点的内容中途出错时,将所述顶层日志节点的出错属性对应状态值修改为出错状态值;
在检测到子日志节点的内容中途出错时,将所述顶层日志节点和子日志节点的出错属性对应状态值修改为出错状态值。
6.根据权利要求4所述的方法,其特征在于,所述初始值为出错状态值,所述检测所述顶层日志节点的内容和所述子日志节点的内容是否出错,确定顶层日志节点和子日志节点的出错属性对应状态值,还包括:
在检测到子日志节点的内容没有出错时,将所述子日志节点的出错属性对应状态值修改为正常状态值;
在检测到所述顶层日志节点的内容和子日志节点的内容没有出错时,将所述顶层日志节点的出错属性对应状态值修改为正常状态值。
7.根据权利要求1所述的方法,其特征在于,包括:各个所述子日志节点按照创建时间的先后顺序排列。
8.一种生成XML日志的装置,其特征在于,包括:
顶层日志节点创建模块,用于接收创建顶层日志节点的指令,创建与所述指令对应的顶层日志节点,所述顶层日志节点包括顶层日志节点的内容和xml节点;
子日志节点创建模块,用于接收创建子日志节点的指令,创建与所述创建子日志节点的指令对应的子日志节点,所述子日志节点包括子日志节点的内容和所述顶层日志节点传递给所述子日志节点的xml节点的指针;
出错属性设置模块,用于设置所述顶层日志节点和所述子日志节点的出错属性,所述出错属性用于判断所述顶层日志节点的内容和所述子日志节点的内容是否中途出错;
内容出错检测模块,用于检测所述顶层日志节点的内容和所述子日志节点的内容是否出错,确定顶层日志节点和子日志节点的出错属性对应状态值。
9.根据权利要求8所述的装置,其特征在于,所述内容出错检测模块,包括:
输出判断子模块,用于判断所述顶层日志节点的内容和所述子日志节点的内容应该存在输出的位置是否存在输出,若不存在输出,则确定顶层日志节点的内容和所述子日志节点的内容中途出错。
10.根据权利要求9所述的装置,其特征在于,输出判断子模块,具体用于检测顶层日志节点应该存在输出的位置是否存在输出;若顶层日志节点应该存在输出的位置不存在输出,则检测所述子日志节点应该存在输出的位置是否存在输出;在所述子日志节点应该存在输出的位置不存在输出时,确定所述顶层日志节点的内容和所述子日志节点的内容中途出错;以及,在子日志节点应该存在输出的位置存在输出时,确定所述顶层日志节点的内容中途出错。
11.根据权利要求9所述的装置,其特征在于,所述出错属性设置模块,具体用于为所述顶层日志节点和所述子日志节点配置出错属性;以及将所述顶层日志节点和所述子日志节点的出错属性对应状态值设置为初始值。
12.根据权利要求11所述的装置,其特征在于,所述初始值为正常状态值,所述内容出错检测模块,还包括:
状态修改子模块,用于在检测到所述顶层日志节点的内容中途出错时,将所述顶层日志节点的出错属性对应状态值修改为出错状态值;以及,在检测到子日志节点的内容中途出错时,将所述顶层日志节点和子日志节点的出错属性对应状态值修改为出错状态值。
13.根据权利要求11所述的装置,其特征在于,所述初始值为出错状态值,所述内容出错检测模块,还包括:
状态修改子模块,用于在检测到子日志节点的内容没有出错时,将所述子日志节点的出错属性对应状态值修改为正常状态值;以及在检测到所述顶层日志节点的内容和子日志节点的内容没有出错时,将所述顶层日志节点的出错属性对应状态值修改为正常状态值。
14.根据权利要求8所述的装置,其特征在于,还包括:
排列模块,用于各个所述子日志节点按照创建时间的先后顺序进行排列。
CN201610229167.4A 2016-04-13 2016-04-13 一种生成xml日志的方法和装置 Active CN107291588B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610229167.4A CN107291588B (zh) 2016-04-13 2016-04-13 一种生成xml日志的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610229167.4A CN107291588B (zh) 2016-04-13 2016-04-13 一种生成xml日志的方法和装置

Publications (2)

Publication Number Publication Date
CN107291588A CN107291588A (zh) 2017-10-24
CN107291588B true CN107291588B (zh) 2020-07-17

Family

ID=60093316

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610229167.4A Active CN107291588B (zh) 2016-04-13 2016-04-13 一种生成xml日志的方法和装置

Country Status (1)

Country Link
CN (1) CN107291588B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092598A (zh) * 2014-07-03 2014-10-08 厦门欣欣信息有限公司 一种消息传播路径提取方法及其系统
CN104199824A (zh) * 2014-07-21 2014-12-10 武汉传神信息技术有限公司 一种树型数据上判定节点关系的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4496006B2 (ja) * 2004-05-12 2010-07-07 株式会社東芝 故障候補特定システムおよび故障候補特定方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092598A (zh) * 2014-07-03 2014-10-08 厦门欣欣信息有限公司 一种消息传播路径提取方法及其系统
CN104199824A (zh) * 2014-07-21 2014-12-10 武汉传神信息技术有限公司 一种树型数据上判定节点关系的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于XML的综合日志预处理模型设计";刘必雄;《莆田学院学报》;20071227;第14卷(第5期);第65-69页 *

Also Published As

Publication number Publication date
CN107291588A (zh) 2017-10-24

Similar Documents

Publication Publication Date Title
US9612937B2 (en) Determining relevant events in source code analysis
US7882495B2 (en) Bounded program failure analysis and correction
Cinque et al. Event logs for the analysis of software failures: A rule-based approach
Xu et al. POD-Diagnosis: Error diagnosis of sporadic operations on cloud applications
US9535821B1 (en) Displaying violated coding rules in source code
US8250543B2 (en) Software tracing
US8832658B2 (en) Verification framework for business objects
CN108197032B (zh) Ios应用的主线程卡顿监测方法、介质、设备及系统
Tahat et al. Regression test suite prioritization using system models
WO2012104488A1 (en) Arrangement and method for model-based testing
CN107526676B (zh) 一种跨系统测试方法及装置
US10459830B2 (en) Executable code abnormality detection
US8752027B2 (en) Injecting faults into program for testing software
Lauer et al. Fault tree synthesis from UML models for reliability analysis at early design stages
CN108763071A (zh) 一种网页测试方法及终端设备
US20100306593A1 (en) Automatic bug reporting tool
US20160188441A1 (en) Testing multi-threaded applications
CN113971031A (zh) 软件包依赖关系检查方法及装置
CN111104319A (zh) 一种代码覆盖率测试方法、装置、电子设备及存储介质
Alawneh et al. A unified approach for verification and validation of systems and software engineering models
CN112988503A (zh) 分析方法、分析装置、电子装置和存储介质
KR20180134677A (ko) 결함 주입 테스트 방법 및 장치
CN107291588B (zh) 一种生成xml日志的方法和装置
US8739130B2 (en) Quality assurance testing
CN114625106A (zh) 车辆诊断的方法、装置、电子设备及存储介质

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