日志文件查询方法及装置与流程

文档序号:11919251阅读:276来源:国知局
日志文件查询方法及装置与流程

本申请涉及计算机技术领域,尤其涉及日志文件查询方法及装置。



背景技术:

随着电子设备技术的快速发展,智能设备的使用越来越频繁,针对智能设备所开发的应用程序也越来越多。在程序(或系统)的开发、测试与以及实际运行的过程中,设备及应用程序通常会收集存储日志文件,日志可以用于对程序的运行状态进行监控、以及在程序故障时进行问题排查,以供用户查询和分析。

相关技术中的日志文件查询分析方式,通常是用户根据分析需求输入关键字,从日志文件中查询出与关键字匹配的结果。上述查询分析方式,需要用户较多的手动操作,用户的工作量较大、分析效率低,且扩展性较差。



技术实现要素:

为克服相关技术中存在的问题,本申请提供了日志文件查询方法及装置。

根据本申请实施例的第一方面,提供一种日志文件查询方法,所述方法包括:

获取待查询的日志文件;

从若干个预设的特征文件中确定满足本次查询需求的特征文件,其中,每个所述预设的特征文件中对应存储有根据预设查询需求而设定的特征关键字集合,所述特征关键字集合包括若干个特征关键字,并指示有各个所述特征关键字之间在查询时的层次关系;

利用所确定的特征文件中存储的特征关键字集合,按照各个所述特征关键字之间在查询时的层次关系,从所述日志文件中查询与各个所述特征关键字所匹配的查询结果,输出所述查询结果。

根据本申请实施例的第二方面,提供一种日志文件查询装置,包括:

日志文件获取模块,用于:获取待查询的日志文件;

特征文件确定模块,用于:从若干个预设的特征文件中确定满足本次查询需求的特征文件,其中,每个所述预设的特征文件中对应存储有根据预设查询需求而设定的特征关键字集合,所述特征关键字集合包括若干个特征关键字,并指示有各个所述特征关键字之间在查询时的层次关系;

查询模块,用于:利用所确定的特征文件中存储的特征关键字集合,按照各个所述特征关键字之间在查询时的层次关系,从所述日志文件中查询与各个所述特征关键字所匹配的查询结果,输出所述查询结果。

本申请的实施例提供的技术方案可以包括以下有益效果:

本申请中,由于预先针对多种不同查询需求存储有相关的特征文件,则在进行日志文件查询时,可以获取满足本次查询需求的特征文件,由于特征文件中已存储有相应的特征关键字集合,因此可以自动读取各个特征关键字并自动进行日志文件查询,从而无需用户进行较多操作,并且各查询场景的特征文件可以重复使用,可扩展性较高。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1A是本申请根据一示例性实施例示出的一种日志文件查询方法的流程图。

图1B是本申请根据一示例性实施例示出的一种日志文件查询方法的应用场景图。

图1C是本申请根据一示例性实施例示出的一种树结构的示意图。

图1D是本申请根据一示例性实施例示出的一种特征关键字集合配置界面的示意图。

图2是本申请根据一示例性实施例示出的一种日志文件查询装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

通常,为了便于了解设备或应用程序的运行状况,操作系统及应用程序通常都配置有日志记录功能,该功能可以在操作系统及应用程序的运行过程中生成相应的日志消息,日志消息会记录于日志文件(Log)中,日志文件有助于分析系统或应用程序的运行过程,以供用户查询、分析、跟踪定位并解决问题。

相关技术中的日志文件查询分析方式,通常是用户根据分析需求输入关键字,提供日志文件查询功能的工具从日志文件中查询出与关键字匹配的结果。上述查询分析方式,需要用户较多的手动操作,用户的工作量较大、分析效率低,且扩展性较差。

在实际应用中,经常涉及从日志文件中查询相关信息的需求。例如,对于一款应用程序而言,在开发及运营过程中可能会产生各种各样的问题,如黑屏、卡死或崩溃等。或者,一款应用程序推出后,产品经理通常希望从通过对用户的行为分析,更精确地制定符合用户场景的功能。分析程序的问题以及分析用户行为的关键信息,都可以从应用以及系统产生的各式各样的日志文件中分析得到。

例如,对于客户端厂商来说,经常会涉及到分析客户端的用户使用情况(例如某款功能推出一定时间后的用户使用频率)、或客户端的出错情况(以直播客户端为例,包括有黑屏问题、语音播放问题或画面卡顿问题等)等等查询需求。对于此类查询需求,可能需要用户反复周期性地进行查询。例如,对于分析客户端的用户使用情况,可能需要间隔三天、一周或两周等时间段,通过不同时间段的日志文件进行查询分析;对于分析客户端的出错情况,也可能需要间隔一定时间段反复通过日志文件进行查询分析,例如分析不同时间段的日志文件分析出错情况的产生时间,或者是在客户端发布前后,通过分析发布前后的日志文件分析错误情况是否有解决。对于具有日志分析需求的用户来说,针对同一查询需求,在对日志文件进行过滤查询时所采用的特征关键字是相同的。相关技术中,若同一查询需求下需要查询多次日志文件,则用户每次都需要输入相同的特征关键字。因此,相关技术需要用户较多的手动操作,用户的工作量较大、分析效率低,且扩展性较差。

而本申请实施例所提供的方案,由于预先针对多种不同查询需求存储有相关的特征文件,则在进行日志文件查询时,可以获取满足本次查询需求的特征文件,由于特征文件中已存储有相应的特征关键字集合,因此可以自动读取各个特征关键字并自动进行日志文件查询,从而无需用户进行较多操作,并且各查询场景的特征文件可以重复使用,可扩展性较高。接下来对本申请实施例进行详细说明。

如图1A所示,图1A是本申请根据一示例性实施例示出的一种日志文件查询方法的流程图,包括以下步骤101至103:

在步骤101中,获取待查询的日志文件。

在步骤102中,从若干个预设的特征文件中确定满足本次查询需求的特征文件。

其中,每个所述预设的特征文件中对应存储有根据预设查询需求而设定的特征关键字集合,所述特征关键字集合包括若干个特征关键字,并指示有各个所述特征关键字之间在查询时的层次关系。

在步骤103中,利用所确定的特征文件中存储的特征关键字集合,按照各个所述特征关键字之间在查询时的层次关系,从所述日志文件中查询与各个所述特征关键字所匹配的查询结果,输出所述查询结果。

本申请实施例的方案,可应用于个人计算机、平板电脑、笔记本电脑或服务器设备等计算设备,为具有日志查询需求的用户自动确定特征关键字,并自动输出查询结果。

其中,该待查询的日志文件的获取方式,可以有多种方式。例如,可以是由用户提供,计算设备可以通过日志文件导入接口等方式读取用户所提供的待查询的日志文件。

或者,还可以是自动获取的方式,例如是在设备本地,在技术人员的启动下、或者是按照设定的查询时刻或者是其他指令的指示下,从指定的日志文件存储区中获取指定的待查询日志文件,或者是通过指定的接口或通过指定的下载地址获取指定的待查询日志文件等等。对于自动获取的方式,技术人员可以根据实际需要预先配置日志文件的获取接口、获取地址或查询时刻等相关自动获取参数。

作为一个例子,如图1B所示,是根据一示例性实施例示出的一种日志文件查询方法的应用场景图,图1B中包括一计算设备、一应用服务器以及多个安装有客户端的智能终端(智能手机、平板电脑或个人计算机等)。

本实施例中,各智能终端中所安装的客户端可以收集客户端运行时的日志文件,以及设备的操作系统所产生的日志文件,并发送给应用服务器。

本实施例所提供的日志文件查询方案可应用于该计算设备上,该计算设备与应用服务器具有数据接口,应用服务器可以接收各客户端所发送的日志文件,并且还可以采用本地存储或数据库存储的方式对日志文件进行保存。计算设备可以根据技术人员的设置,计算设备可以在设定的查询时刻到达时,通过数据接口读取到应用服务器所存储的待查询的日志文件,并可以自动启动后续的日志查询流程。图1B只为示例说明,可以理解,在其他可选的实现方式中,本实施例的日志文件查询方案还可以应用于应用服务器中,应用服务器对其所收集的日志文件进行分析等等,在实际应用中可以灵活配置,本实施例对此不作限定。

本实施例的特征关键字,可以理解为检索表达式,也即是由查询工具理解和运算的查词串,可以由检索关键字、逻辑运算符、检索指令(检索语法)等构成。检索关键字是检索表达式的主体,逻辑运算符和搜索指令根据具体的查询要求从不同的角度对检索关键字进行检索限定。例如,“所有用户ID”、“早上8点至晚上8点之间所有直播间的ID”、“粉丝数量大于1万的主播ID”都表示一个特征关键字。在这里为了便于理解,采用文字的方式表达特征关键字,在实际应用中,特征关键字可以根据需要灵活采用多种不同的语法进行表达,例如,一种常见的方式可以是正则表达式。

而本实施例中,可以根据具体的查询需求预先设定对应不同查询需求的多份特征文件,每份特征文件用以存储该查询需求中所涉及的若干个特征关键字集合。各份特征文件可以采用名称等标识,指示每份特征文件所具体对应的查询需求,以供用户在需要进行日志文件查询时,可以从预设的多个特征文件中确定本次查询所需要的特征文件,接着即可自动读取特征文件中所记录的特征关键字集合,并自动执行后续的日志文件查询处理,而无需用户进行较多的特征关键字输入操作。

本实施例的特征文件中所记录的特征关键字集合,可以只有一个特征关键字,而在所记录的特征关键字有多个的情况下,特征关键字集合可以指示有各个所述特征关键字之间在查询时的层次关系。

作为一个例子,假设一涉及查询用户ID的查询需求所涉及的查询过程包括:

第一层次的查询:从日志文件中过滤出所有带有“所有用户ID”的日志消息,得到“用户ID”查询结果。

第二层次的查询:基于“用户ID”查询结果,进一步过滤出“所有主播用户ID”的日志消息。

第三层次的查询:基于“用户ID”查询结果,进一步过滤出“所有观众用户ID”的日志消息。

上述查询需求中,所涉及的特征关键字包括有:“所有用户ID”、“所有主播用户ID”和“所有观众用户ID”。而三者的层次关系是:在“所有用户ID”的基础上,分别进一步查询“所有主播用户ID”和“所有观众用户ID”。

因此,特征文件中可以记录由上述三个特征关键字,以及三个特征关键字之间在查询时的层次关系所构成的一特征关键字集合。在实际应用中,特征关键字集合在特征文件中的记录形式,可以根据实际需要而灵活选择,例如可以采用文本的形式进行记录,或者采用相关的编程语法以代码的形式进行存储。

为了使特征关键字集合的记录形式更为直观,以及便于后续的查询处理,本实施例的特征文件采用树结构的方式对特征关键字集合进行记录。具体的,所述特征关键字集合采用树结构进行存储,所述树结构中的每个节点记录一个所述特征关键字,各个节点之间的分支关系指示各个所述特征关键字之间在查询时的层次关系。

树结构是一种数据结构,由n(n>=1)个有限节点组成一个具有层次关系的集合。树结构具有以下特点:

每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树。

本实施例中,特征文件中采用树结构记录特征关键字集合,则树结构的节点可以对应一个特征关键字,而树的各个节点的层次关系即可指示各个所述特征关键字之间在查询时的层次关系,采用树结构的方式,可以使特征关键字集合的记录形式更为直观,也能提高后续的查询处理的效率。

例如,对于上述的查询用户ID的查询需求,其树结构可如图1C所示,其中根节点对应“所有用户ID”,该根节点的两个子节点分别对应“所有主播用户ID”和“所有观众用户ID”,根节点与两个子节点的层次关系可以指示“所有用户ID”、“所有主播用户ID”与“所有观众用户ID”的层次关系。图1C中以图例的方式展示了一树结构的示意图,在实际应用中,树结构还可以以按照设定的编程语言,以代码的形式(如正则表达式等)记录于特征文件中,具体的形式对此不作限定。

对于采用树结构存储的特征关键字集合,在按照各个所述特征关键字之间在查询时的层次关系,从所述日志文件中查询与各个所述特征关键字所匹配的查询结果,可以包括:

从树结构的根节点开始,按照前序遍历的方式访问所述树结构的每一个节点。

在访问每一个节点时,对于根节点,从所述日志文件中查询与所述根节点中记录的特征关键字所匹配的查询结果;对于其他节点,从本次访问节点的父节点所对应的查询结果中查询与本次访问节点中记录的特征关键字所匹配的查询结果。

本实施例中,树结构中各节点的关系指示了各个特征关键字之间在查询时的层次关系,而根节点可以作为查询入口,指示第一层次的特征关键字。因此在具体查询时,从根节点开始访问各个节点,因此采用前序遍历的遍历树结构。本实施例的遍历(Traversal),是指针对树结构,沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。而前序遍历,是指首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。

作为一个例子,可以是加载日志特征文件,读取特征文件中的内容至内存,得到树结构。接着将待查询的日志文件读入内存,从树结构的根结点开始进行查询,如果该节点中对应一特征关键字,读取特征关键字并从日志文件中进行查询,获取到过滤结果后,将该节点所对应的查询结果进行保存。接着以该结果为基础,往下访问根节点的子节点,直至该节点的所有子节点分析完毕。在此过程中,如果过滤失败,可以将过滤失败的位置及原因进行记录,停止该子节点的遍历,并回溯到同层级下一子节点进行查询,如果没有下一子节点,则回溯到父节点的同层级子节点,直至所有节点遍历完毕。最后可以将所有节点对应的查询结果以可视化的方式进行输出,以供用户查阅。

对于利用特征关键字从日志文件或查询结果中过滤出与特征关键字匹配的日志消息,则可以利用相关技术中的字符串检索技术,根据特征关键字中的检索关键字和运算符对日志文件中的每条日志消息进行字符串运算,从而获得包含若干条符合该特征关键字的日志消息所构成的查询结果。

由前述分析可知,可以预先根据不同查询需求而设定多份特征文件,针对如何生成各个不同查询场景下的特征文件,本实施例通过如下两个可选的实现方式进行说明。

第一种方式、提供给用户进行特征关键字集合配置的界面。

本实施例中,所述预设的特征文件可以通过如下方式预先获得:

输出特征关键字集合配置界面。

通过所述配置界面获取用户所配置的各个特征关键字,以及各个特征关键字之间在查询时的层次关系。

将所述各个特征关键字,以及各个特征关键字之间在查询时的层次关系所构成的特征关键字集合存储至一文件中,获得所述特征文件。

本实施例中,可以通过可视化的方式,在设备屏幕中展示特征关键字集合配置界面,该配置界面中可以提供多种可输入控件,例如输入框等控件,以供用户针对查询需求,输入相应的特征关键字集合。如图1D所示,是根据一示例性实施例示出的一种特征关键字集合配置界面的示意图,通过该界面,用户可以便捷地进行特征关键字集合的配置。

第二种方式、通过用户的分析过程,自动记录该查询场景下的特征文件。

本实施例中,所述预设的特征文件通过如下方式预先获得:

在用户输入特征关键字进行日志文件查询的情况下,获取用户每次输入的特征关键字,从用户指定的日志文件或查询结果中查询与所输入的特征关键字匹配的查询结果并输出。

在输出所述查询结果后,若接收到所述用户输入的查询结果确认指令,则保存所述输入的特征关键字。

在确定查询结束后,将本次查询所存储的各个特征关键字,以及各个特征关键字之间在查询时的层次关系所构成的特征关键字集合存储至一文件中,获得所述特征文件。

对于用户手动输入特征关键字进行日志文件查询的情况下,本实施例可以自动存储用户在本次查询中所输入的特征关键字,以及查询过程中各特征关键字的层次关系,从而为本次查询需求生成特征文件,则后续涉及该查询需求,则可以采用该特征文件进行自动查询。

与前述日志文件查询方法的实施例相对应,本申请还提供了日志文件查询装置的实施例。

如图2所示,图2是本申请根据一示例性实施例示出的一种日志文件查询装置的框图,所述装置包括:

日志文件获取模块21,用于:获取待查询的日志文件。

特征文件确定模块22,用于:从若干个预设的特征文件中确定满足本次查询需求的特征文件,其中,每个所述预设的特征文件中对应存储有根据预设查询需求而设定的特征关键字集合,所述特征关键字集合包括若干个特征关键字,并指示有各个所述特征关键字之间在查询时的层次关系。

查询模块23,用于:利用所确定的特征文件中存储的特征关键字集合,按照各个所述特征关键字之间在查询时的层次关系,从所述日志文件中查询与各个所述特征关键字所匹配的查询结果,输出所述查询结果。

在一个可选的实现方式中,所述特征关键字集合采用树结构进行存储,所述树结构中的每个节点记录一个所述特征关键字,各个节点之间的分支关系指示各个所述特征关键字之间在查询时的层次关系。

在一个可选的实现方式中,所述查询模块23(图2未示出),包括:

遍历访问子模块,用于:从树结构的根节点开始,按照前序遍历的方式访问所述树结构的每一个节点。

查询子模块,用于:在访问一个节点时,对于根节点,从所述日志文件中查询与所述根节点中记录的特征关键字所匹配的查询结果;对于其他节点,从本次访问节点的父节点所对应的查询结果中查询与本次访问节点中记录的特征关键字所匹配的查询结果。

在一个可选的实现方式中,所述装置还包括特征文件获取模块(图2未示出),所述特征文件获取模块,包括:

界面输出子模块,用于:输出特征关键字集合配置界面;通过所述配置界面获取用户所配置的各个特征关键字,以及各个特征关键字之间在查询时的层次关系。

第一存储子模块,用于:将所述各个特征关键字,以及各个特征关键字之间在查询时的层次关系所构成的特征关键字集合存储至一文件中,获得所述特征文件。

在一个可选的实现方式中,所述装置还包括特征文件获取模块(图2未示出),所述特征文件获取模块,包括:

特征关键字获取子模块,用于:在用户输入特征关键字进行日志文件查询的情况下,获取用户每次输入的特征关键字,从用户指定的日志文件或查询结果中查询与所输入的特征关键字匹配的查询结果并输出。

特征关键字保存子模块,用于:在输出所述查询结果后,若接收到所述用户输入的查询结果确认指令,则保存所述输入的特征关键字。

第二存储子模块,用于:在确定查询结束后,将本次查询所存储的各个特征关键字,以及各个特征关键字之间在查询时的层次关系所构成的特征关键字集合存储至一文件中,获得所述特征文件。

上述日志文件查询装置中各个模块的功能和作用的实现过程具体详见上述日志文件查询方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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