日志文件读取的方法和设备与流程

文档序号:14967459发布日期:2018-07-20 11:21阅读:342来源:国知局

本申请涉及互联网技术领域,尤其涉及一种日志文件读取的方法和设备。



背景技术:

在计算机或者互联网的应用场景中,日志文件的监控是非常重要的。日志文件,也就是常说的log文件,其记录了操作系统或者软件的一些执行过程。通常,可通过对系统或程序产生的日志进行分析,以实现故障查询或运行情况的监控。

但是,在一些情况下,日志文件包含的记录较多,数量大,导致读取日志文件的速度缓慢。在这种情况下,一种日志文件读取的方法亟待提出。



技术实现要素:

本申请实施例的多个方面提供一种日志文件读取的方法和设备,用以解决日志文件读取速度缓慢的缺陷,提升日志文件的读取效率。

本申请实施例提供一种日志文件读取方法,包括:

获取针对日志文件的上一次读取操作对应的结束标签;

开启游标,并控制所述游标在所述日志文件中,从所述结束标签开始逐条读取日志记录至指定缓存区;

在所述游标读取第一数量的日志记录后,停止游标,并根据本次读取操作对应的最后一条日志记录确定本次读取操作对应的结束标签。

进一步可选地,所述方法还包括:在所述指定缓存区内,对所述指定数量的日志记录进行分析。

进一步可选地,开启游标,包括:若所述日志文件中,在所述结束标签之后新增的日志记录的数量大于第二数量时,开启所述游标。

进一步可选地,所述第一数量与所述第二数量相同。

进一步可选地,以设定的时间周期开启所述游标。

本申请实施例还提供一种日志文件读取设备,包括:存储器以及处理器;

所述存储器用于存储一条或多条计算机指令;

所述处理器用于执行所述一条或多条计算机指令以用于:

获取针对日志文件的上一次读取操作对应的结束标签;

开启游标,并控制所述游标在所述日志文件中,从所述结束标签开始逐条读取日志记录至指定缓存区;

在所述游标读取第一数量的日志记录后,停止游标,并根据本次读取操作对应的最后一条日志记录确定本次读取操作对应的结束标签。

进一步可选地,所述处理器具体用于:在所述指定缓存区内,对所述指定数量的日志记录进行分析。

进一步可选地,所述处理器具体用于:若所述日志文件中,在所述结束标签之后新增的日志记录的数量大于第二数量时,开启所述游标。

进一步可选地,所述第一数量与所述第二数量相同。

进一步可选地,所述处理器具体用于:以设定的时间周期开启所述游标。

在本申请实施例中,根据上一次读取操作对应的标签以及所需读取的日志记录的数量,采用游标来分次读取日志文件中的日志记录,在不重复读取且不遗漏数据的情况下,解决了一次性读取日志文件时存在的读取缓慢的缺陷,提升日志文件的读取效率。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明一实施例提供的日志文件读取方法的方法流程图;

图2为本发明另一实施例提供的日志文件读取方法的方法流程图;

图3为本发明一实施例提供的日志文件读取设备的设备结构图。

具体实施方式

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

图1为本发明一实施例提供的日志文件读取方法的方法流程图,如图1所示,该方法包括:

步骤101、获取针对日志文件的上一次读取操作对应的结束标签。

步骤102、开启游标,并控制所述游标在所述日志文件中,从所述结束标签开始逐条读取日志记录至指定缓存区。

步骤103、在所述游标读取第一数量的日志记录后,停止游标,并根据本次读取操作对应的最后一条日志记录确定本次读取操作对应的结束标签。

在步骤101中,日志文件是记录在操作系统或其他程序运行中发生的事件或在通信软件的不同用户之间的消息的文件或文件集合,可分为事件日志和消息日志。日志文件中包含多条日志记录,具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。

结束标签是根据上一次读取操作的对应的最后一条日志记录确定的,标志着上一次读取操作的截止位置。

在步骤102中,游标指的是一种能够从多条数据记录的结果集中每次提取一条记录的数据处理机制。游标可以看作一个查询结果集以及结果集中指向特定记录的游标位置组成的一个临时文件,提供了在查询结果集中向前或向后浏览数据、处理结果集中数据的能力。

在本步骤中,开启游标之后,可通过游标在日志文件中读取多次,每次读取一条日志记录。其中,多次读取具有一起始点,该起始点也就是上一步骤中确定的结束标签处。每次读取的日志记录可以存储在指定缓存区中,以便于对日志进行分析处理,从而对产生日志的程序或系统进行监控。

在步骤103中,游标每一次读取的日志记录的数量是固定的,为第一数量,且第一数量远小于日志文件中的日志记录的总数,以实现对数据量较大的日志文件进行分割的目的。

在游标读取第一数量的日志记录后,停止游标,并根据本次读取操作对应的最后一条日志记录确定本次读取操作对应的结束标签。该结束标签作用于在下一次读取操作开始时,作为游标起始位置。

在本实施例中,根据上一次读取操作对应的标签以及所需读取的日志记录的数量,采用游标来分次读取日志文件中的日志记录,在不重复读取且不遗漏数据的情况下,解决了一次性读取日志文件时存在的读取缓慢的缺陷,提升日志文件的读取效率。

图2为本发明另一实施例提供的日志文件读取方法的方法流程图,如图2所示,该方法包括:

步骤201、获取针对日志文件的上一次读取操作对应的结束标签。

步骤202、若所述日志文件中,在所述结束标签之后新增的日志记录的数量大于第二数量时,开启所述游标。

步骤203、控制所述游标在所述日志文件中,从所述结束标签开始逐条读取日志记录至指定缓存区。

步骤204、在所述指定缓存区内,对所述指定数量的日志记录进行分析。

步骤205、在所述游标读取第一数量的日志记录后,停止游标,并将本次读取操作对应的最后一条日志记录的下一条日志记录作为本次读取操作对应的结束标签。

在步骤201中,可选的,结束标签可以是上一次读取操作对应的最后一条日志记录的下一条日志记录。该结束标签可以作为本次读取操作的起始位置。

在步骤202、可选的,游标可在一定的触发条件下开启。在一种可能的情形下,可在日志文件中的新增日志记录达到一定数量时,开启游标。例如,若日志文件中,在所述结束标签之后新增的日志记录的数量大于第二数量时,可开启所述游标,进而可及时读取新增日志记录进行分析处理,以实时获取程序或系统的运行状况。

在一种可选的实施方式中,第一数量与第二数量可以相同,也就是每一次读取操作可以将上一次读取操作对应的结束标签之后新增的日志记录全部读取,以进一步保证日志分析的实时性。可选的,第一数量以及第二数量为50条,该数值为经验值,50条日志记录能够保证较高的读取效率以及日志分析效率。

在步骤203中,控制所述游标在所述日志文件中,从所述结束标签开始逐条读取日志记录至指定缓存区。

在步骤204中,将指定数量的日志记录读取到指定缓存区内之后,可对所述指定数量的日志记录进行分析,以对产生日志的程序或系统的运行状况进行监控。

在步骤205、可选的,针对每次读取操作,当游标读取第一数量的日志记录后,可停止读取,并将本次读取操作对应的最后一条日志记录的下一条日志记录作为本次读取操作对应的结束标签。在下一次读取日志记录时,可以本次读取操作对应的结束标签为起始位置。采用这种方式可以进一步避免遗漏日志记录造成的监控成效低的缺陷。

可选的,上述实施例中的步骤202中,游标的开启条件可以是结束标签之后新增的日志记录的数量大于第二数量标。在另一种情形下,游标还可以设定的周期开启,例如,5分钟开启一次,每次读取的第一数量的日志记录或每次读取5分钟内新增的日志记录。本申请实施例对上述两种实施方式不做限制。

需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201至步骤203的执行主体可以为设备a;又比如,步骤201和202的执行主体可以为设备a,步骤203的执行主体可以为设备b;等等。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

以上实施例描述了日志文件读取方法的可选实施方式,如图3所示,实际中,该日志文件读取方法可通过日志文件读取设备实现,如图3所示,该设备包括:存储器31以及处理器32、输入装置33以及输出装置34。

存储器31以及处理器32、输入装置33以及输出装置34可以通过总线或其他方式连接,图3中以总线连接为例。

其中,存储器31用于存储一条或多条计算机指令,并可被配置为存储其它各种数据以支持在日志文件读取设备上的操作。这些数据的示例包括用于在日志文件读取设备上操作的任何应用程序或方法的指令。

存储器31可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

在一些实施例中,存储器31可选包括相对于处理器32远程设置的存储器,这些远程存储器可以通过网络连接至日志文件读取设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器32与存储器31耦合,用于执行所述一条或多条计算机指令以用于:获取针对日志文件的上一次读取操作对应的结束标签;

开启游标,并控制所述游标在所述日志文件中,从所述结束标签开始逐条读取日志记录至指定缓存区;

在所述游标读取第一数量的日志记录后,停止游标,并根据本次读取操作对应的最后一条日志记录确定本次读取操作对应的结束标签。

进一步可选地,处理器32具体用于:在所述指定缓存区内,对所述指定数量的日志记录进行分析。

进一步可选地,处理器32具体用于:若所述日志文件中,在所述结束标签之后新增的日志记录的数量大于第二数量时,开启所述游标。

进一步可选地,所述第一数量与所述第二数量相同。

进一步可选地,处理器32具体用于:以设定的时间周期开启所述游标。

输入装置33可接收输入的数字或字符信息,以及产生与日志文件读取设备的用户设置以及功能控制有关的键信号输入。输出装置34可包括显示屏等显示设备。

进一步,如图3所示,该日志文件读取设备还包括:电源组件35。电源组件35,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。

上述日志文件读取设备可执行本申请实施例所提供的日志文件读取方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法,不再赘述。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

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