CN106919499B - 一种采集日志消息的方法和装置 - Google Patents

一种采集日志消息的方法和装置 Download PDF

Info

Publication number
CN106919499B
CN106919499B CN201710108804.7A CN201710108804A CN106919499B CN 106919499 B CN106919499 B CN 106919499B CN 201710108804 A CN201710108804 A CN 201710108804A CN 106919499 B CN106919499 B CN 106919499B
Authority
CN
China
Prior art keywords
log
identification information
messages
row
message
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
CN201710108804.7A
Other languages
English (en)
Other versions
CN106919499A (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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710108804.7A priority Critical patent/CN106919499B/zh
Publication of CN106919499A publication Critical patent/CN106919499A/zh
Application granted granted Critical
Publication of CN106919499B publication Critical patent/CN106919499B/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/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

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

Abstract

本发明公开了一种采集日志事件的方法和装置。该方法包括:读取第一行日志消息;若在第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集第一行日志消息中第一标识信息及其之后的日志消息作为当前日志事件下的日志消息;读取第二行日志消息;若在第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集第二行日志消息中第二标识信息之前的日志消息作为当前日志事件下的日志消息,并将当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;其中,先读取第一行日志消息再读取第二行日志消息;在第一标识信息与第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。

Description

一种采集日志消息的方法和装置
技术领域
本发明涉及数据处理技术领域,特别是涉及一种采集日志消息的方法和装置。
背景技术
目前,许多日志传输框架采用按行读取日志的方式对日志消息进行采集。具体地,在现有的日志传输框架中,对于应用程序产生的日志消息,每次读取一行日志消息,然后将这一行日志消息封装成一个日志事件(Event)进行存储。
可以理解的是,应用程序产生的日志消息中通常携带有一些标识信息,这些标识信息能够体现出在标识信息之后出现的日志消息的某一属性,也就是说,标识信息与其后出现的日志消息是相互对应的,因此,这些标识信息可以用于对日志消息的搜索。例如,应用程序产生的日志消息中通常具有时间戳。对于一个时间戳来说,该时间戳之后出现的日志消息即是在该时间戳所体现的时间产生的日志消息。因此,当需要搜索特定时间产生的日志消息时,可以通过在日志消息中查找时间戳来提取相应的日志消息。
在应用程序产生的日志消息中,对于一个标识信息来说,该标识信息对应的日志消息可能不仅仅包括与该标识信息位于同一行的日志消息,还可能包括该行之后的一行或多行的日志消息。但是,在现有的日志传输框架中,应用程序产生的每一行日志消息会被封装成一个日志事件进行存储,因此,该标识信息所对应的日志消息可能并没有与该标识信息存储在同一个日志事件中,这就造成日志搜索不便于通过标识信息对日志消息进行查询和提取,从而影响了日志搜索的便利性。
发明内容
本发明所要解决的技术问题是,提供一种采集日志消息的方法和装置,以使得标识信息与其对应的日志消息能够封装在同一个日志事件中进行存储,从而使得日志搜索能够便于通过标识信息对日志消息进行查询和提取,提高日志搜索的便利性。
第一方面,本发明实施例提供了一种采集日志消息的方法,该方法包括:
读取第一行日志消息;
若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息;
读取第二行日志消息;
若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;
其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。
可选的,在所述采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息之后且在所述读取所示第二行日志消息之前,还包括:
读取所述第三行日志消息;
若在所述第三行日志消息中不具有与标识信息格式相匹配的信息,采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息;
其中,所述第三行日志消息是在所述第一行日志消息与所述第二行日志消息之间读取的一行日志消息。
可选的,
所述采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息,具体为:采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息保存到缓存;
所述采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,具体为:采集所述第二行日志消息中所述第二标识信息之前的日志消息保存到所述缓存;
所述采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息,具体为:采集所述第三行日志消息中所有的日志消息保存到所述缓存;
其中,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。
可选的,在所述将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储之后,还包括:
清空所述缓存中的日志消息。
可选的,所述标识信息格式具体为正则表达式,所述第一标识信息、所述第二标识信息均为正则匹配消息体。
第二方面,本发明实施例提供了一种采集日志消息的装置,该装置包括:
第一读取单元,用于读取第一行日志消息;
第一采集单元,用于若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息;
第二读取单元,用于读取第二行日志消息;
第二采集单元,用于若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;
其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。
可选的,还包括:
第三读取单元,用于读取所述第三行日志消息;
第三采集单元,用于若在所述第三行日志消息中不具有与标识信息格式相匹配的信息,采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息;
其中,所述第三行日志消息是在所述第一行日志消息与所述第二行日志消息之间读取的一行日志消息;
所述第三读取单元在所述第一采集单元执行操作之后触发,所述第三采集单元执行操作之后触发所述第二读取单元。
可选的,
所述第一采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息保存到缓存;
所述第二采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第二行日志消息中所述第二标识信息之前的日志消息保存到所述缓存;
所述第三采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第三行日志消息中所有的日志消息保存到所述缓存;
其中,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。
可选的,还包括:
清空单元,用于在所述第二采集单元封装并存储所述目标日志事件之后,清空所述缓存中的日志消息。
可选的,所述标识信息格式具体为正则表达式,所述第一标识信息、所述第二标识信息均为正则匹配消息体。
与现有技术相比,本发明具有以下优点:
采用本发明实施例的技术方案,在按照每次读取一行日志消息的方式采集日志消息的过程中,每次读取日志消息时通过对读取的日志消息匹配标识信息格式的方式查找出所读取的日志消息中存在的标识信息,并将在相邻两次查找出的标识信息之间所有读取到的日志消息封装成同一日志事件进行存储,这样标识信息与其对应的日志消息能够全部封装在同一个日志事件中进行存储,因此,在日志搜索的过程中就能够通过标识信息对日志消息进行查询和提取而不会存在遗漏,日志搜索的便利性得以提高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种应用场景所涉及的系统框架示意图;
图2为本发明实施例中一种采集日志消息的方法的流程示意图;
图3为本发明实施例中另一种采集日志消息的方法的流程示意图;
图4为本发明实施例中一种采集日志消息的装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
发明人经过研究发现,在应用程序产生的日志消息中,对于一个标识信息来说,该标识信息对应的日志消息可能不仅仅包括与该标识信息位于同一行的日志消息,还可能包括该行之后的一行或多行的日志消息。但是,在现有的日志传输框架中,应用程序产生的每一行日志消息会被封装成一个日志事件进行存储,这样就会造成该标识信息所对应的日志消息可能并没有与该标识信息存储在同一个日志事件中,因此,在日志搜索的过程中,通过标识信息对日志消息进行查询和提取,很可能遗漏没有与标识信息封装在同一日志事件中的日志消息,这样就导致日志搜索不能简单地仅通过标识信息进行,从而影响了日志搜索的便利性。
为了解决这一问题,在本发明实施例中,在按照每次读取一行日志消息的方式采集日志消息的过程中,每次读取日志消息时通过对读取的日志消息匹配标识信息格式的方式查找出所读取的日志消息中存在的标识信息,并将在相邻两次查找出的标识信息之间所有读取到的日志消息封装成同一日志事件进行存储,这样标识信息与其对应的日志消息能够全部封装在同一个日志事件中进行存储,因此,在日志搜索的过程中就能够通过标识信息对日志消息进行查询和提取而不会存在遗漏,日志搜索的便利性得以提高。
举例来说,本发明实施例的场景之一,可以是应用到如图1所示的系统中。该系统包括客户端101和服务器端102。其中,客户端101可以读取应用程序产生的日志消息并封装成日志事件的文件再提供给服务器端102进行存储。具体地,客户端101读取第一行日志消息,若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息。然后,客户端101读取第二行日志消息,若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件,以便将目标日志时间发送给服务器端102进行存储。其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。其中,所述系统可以采用ApacheFlume日志传输框架,所述客户端101可以是Flume AvroClient。
可以理解的是,在上述应用场景中,虽然将本发明实施方式的动作描述由客户端101执行,但是这些动作也可以由服务器端101执行,或者还可以部分由客户端101执行、部分由服务器端102执行。本发明在执行主体方面不受限制,只要执行了本发明实施方式所公开的动作即可。
可以理解的是,上述场景仅是本发明实施例提供的一个场景示例,本发明实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本发明实施例中采集日志消息的方法、装置和设备的具体实现方式。
示例性方法
参见图2,示出了本发明实施例中一种采集日志消息的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:
201、读取第一行日志消息。
202、若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息。
具体实现时,当应用程序产生一行日志消息时,以该行日志信息作为第一行日志信息,在第一行日志信息中查找是否存在与标识信息格式相匹配的信息。若存在,则以查找到的信息作为第一标识信息,从第一行日志消息中采集第一标识信息及其之后的日志消息到当前日志事件下的日志消息。
作为一种示例,所述标识信息格式例如可以是正则表达式,相匹配出的第一标识信息则为正则匹配消息体。例如,所述正则表达式可以是时间戳的表达式,则第一标识信息具体为时间戳信息。
需要说明的是,被采集到当前日志事件下的日志消息可以按照采集的先后顺序拼接起来。每一次当前日志事件的采集均是以一个标识信息为起始的日志消息,以下一个标识信息之前的日志消息为最后一部分的日志消息。具体到202中,所述第一标识信息为所述当前日志事件下起始的日志消息。
作为一种示例,针对当前日志事件采集日志消息的方式可以采用缓存来实现,也即,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。在当前日志事件采集过程中,被采集到的日志消息保存到缓存并拼接在缓存中已存在的日志消息之后。在当前日志事件采集完毕时,缓存中保存的所有日志消息被存储成日志文件。存储完毕之后,缓存中的日志消息将被清空,以便用于下一个日志事件的采集。具体地,202中,对第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息的采集方式,具体可以用在于:采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息保存到缓存。其中,所述第一标识消息是所述当前日志事件的起始,即所述第一标识信息是所述缓存中起始的信息。
203、读取第二行日志消息;
204、若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;
其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。
具体实现时,在读取第一行日志消息之后,应用程序产生了另一行日志消息时,以该行日志消息作为第二行日志消息,在第二行日志消息中查找是否存在与所述标识信息格式相匹配的信息。若存在,则以查找到的信息作为第二标识信息,从第二行日志消息中采集第二标识信息之前的日志消息到当前日志事件下的日志消息。
作为一种示例,所述标识信息格式例如可以是正则表达式,相匹配出的第二标识信息则为正则匹配消息体。例如,所述正则表达式可以是时间戳的表达式,则第二标识信息具体为时间戳信息。
需要说明的是,被采集到当前日志事件下的日志消息可以按照采集的先后顺序拼接起来。每一次当前日志事件的采集均是以一个标识信息为起始的日志消息,以下一个标识信息之前的日志消息为最后一部分的日志消息。具体到204中,所述第二标识信息之前的日志消息为所述当前日志事件下最后一部分的日志消息。
作为一种示例,针对当前日志事件采集日志消息的方式可以采用缓存来实现,也即,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。在当前日志事件采集过程中,被采集到的日志消息保存到缓存并拼接在缓存中已存在的日志消息之后。在当前日志事件采集完毕时,缓存中保存的所有日志消息被存储成日志文件。存储完毕之后,缓存中的日志消息将被清空,以便用于下一个日志事件的采集。具体地,204中,对第二行日志消息中所述第二标识信息之前的日志消息的采集方式,具体可以用在于:采集所述第二行日志消息中所述第二标识信息之前的日志消息保存到所述缓存。其中,所述第二标识消息之前的日志消息是所述当前日志事件最后一部分的日志消息,即所述第一标识信息是所述缓存中最后一部分的信息。
进一步而言,在将缓存中当前日志事件下采集到的日志消息封装成目标日志事件进行存储之后,还可以清空所述缓存中的日志消息,以便缓存可以用于采集下一个日志事件的日志消息并在下一个日志事件存储之前保存采集到的日志消息。
可以理解的是,当前日志事件的日志消息是两个相邻的标识信息之间读取的日志消息。具体到本实施例来说,第一行日志消息与第二行日志消息之间的读取顺序在于,先读取第一行日志消息再读取第二行日志消息,并且,第一行日志消息中第一标识信息之后直至第二行日志消息中第二标识信息之前没有其他与所述标识信息格式相匹配的标识信息。
作为一种示例,相邻出现的两个标识信息可以位于应用程序产生的前后两行日志消息。具体到本实施例中,所述第一行日志消息中的第一标识信息与所述第二行日志消息中的第二标识信息是相邻的两个标识信息,故所述第一行日志消息的下一行即是所述第二行日志消息。在这种情况下,202执行完成之后可以执行203。在当前日志事件所采集的日志消息中,从所述第一行日志消息中采集的日志消息之后可以拼接上从所述第二行日志消息中采集的日志消息。
作为另一种示例,在相邻出现的两个标识信息所位于的两行日志消息之间应用程序还产生了其他不具有标识信息的一行或多行日志消息。具体到本实施例中,所述第一行日志消息中的第一标识信息与所述第二行日志消息中的第二标识信息是相邻的两个标识信息,故所述第一行日志消息与所述第二行日志消息之间还有具有其他的一行或多行的日志消息。在这种情况下,如图3所示,以第三行日志消息表示位于所述第一行日志消息与所述第二行日志消息之间的任意一行日志消息,在202执行完成之后且203执行之前,还可以包括以下步骤:
301、读取所述第三行日志消息;
302、若在所述第三行日志消息中不具有与标识信息格式相匹配的信息,采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息;
其中,所述第三行日志消息是在所述第一行日志消息与所述第二行日志消息之间读取的一行日志消息。
具体实现时,在读取第一行日志消息之后且读取第二行日志消息之前,应用程序产生了又一行日志消息时,以该行日志消息作为第三行日志消息,在第三行日志消息中查找是否存在与所述标识信息格式相匹配的信息。若不存在,将整个第三行日志消息中采集到当前日志事件下的日志消息。
需要说明的是,被采集到当前日志事件下的日志消息可以按照采集的先后顺序拼接起来。具体到302中,所述第三行日志消息拼接到当前日志事件之前采集到的所有日志消息之后。
作为一种示例,针对当前日志事件采集日志消息的方式可以采用缓存来实现,也即,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。在当前日志事件采集过程中,被采集到的日志消息保存到缓存并拼接在缓存中已存在的日志消息之后。在当前日志事件采集完毕时,缓存中保存的所有日志消息被存储成日志文件。存储完毕之后,缓存中的日志消息将被清空,以便用于下一个日志事件的采集。具体地,302中,对第三行日志消息的采集方式,具体可以用在于:采集所述第三行日志消息中所有的日志消息保存到所述缓存。其中,所述第二标识消息之前的日志消息是所述当前日志事件最后一部分的日志消息,即所述第一标识信息是所述缓存中最后一部分的信息。
可以理解的是,在204执行完成之后,所述第二行日志消息可以被看成第一行日志消息,所述第二标识信息可以被看成是第一标识信息,从而再从201开始执行,以便继续采集下一日志事件下的日志消息。
需要说明的是,本实施例所提及的“第一行日志消息”、“第二行日志消息”、“第三行日志消息”中的“第一”、“第二”、“第三”仅用于对不同的三行日志消息进行名称标记,而并不表示这三行日志消息被读取的次序。例如,“第一行日志消息”可以表示应用程序产生的任意一行日志消息,而并非一定是应用程序最先产生的、第一次产生的一行日志消息。此外,“第一行日志消息”、“第二行日志消息”、“第三行日志消息”之间执行顺序的关系可参见本实施例前述的介绍。
在本实施例中,在按照每次读取一行日志消息的方式采集日志消息的过程中,每次读取日志消息时通过对读取的日志消息匹配标识信息格式的方式查找出所读取的日志消息中存在的标识信息,并将在相邻两次查找出的标识信息之间所有读取到的日志消息封装成同一日志事件进行存储,这样标识信息与其对应的日志消息能够全部封装在同一个日志事件中进行存储,因此,在日志搜索的过程中就能够通过标识信息对日志消息进行查询和提取而不会存在遗漏,日志搜索的便利性得以提高。
示例性设备
参见图4,示出了本发明实施例中一种采集日志消息的装置的结构示意图。在本实施例中,所述装置例如具体可以包括:
第一读取单元401,用于读取第一行日志消息;
第一采集单元402,用于若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息;
第二读取单元403,用于读取第二行日志消息;
第二采集单元404,用于若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;
其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。
可选的,还包括:
第三读取单元,用于读取所述第三行日志消息;
第三采集单元,用于若在所述第三行日志消息中不具有与标识信息格式相匹配的信息,采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息;
其中,所述第三行日志消息是在所述第一行日志消息与所述第二行日志消息之间读取的一行日志消息;
所述第三读取单元在所述第一采集单元执行操作之后触发,所述第三采集单元执行操作之后触发所述第二读取单元。
可选的,
所述第一采集单元402对所述当前日志事件下的日志消息的采集方式为:采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息保存到缓存;
所述第二采集单元404对所述当前日志事件下的日志消息的采集方式为:采集所述第二行日志消息中所述第二标识信息之前的日志消息保存到所述缓存;
所述第三采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第三行日志消息中所有的日志消息保存到所述缓存;
其中,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。
可选的,还包括:
清空单元,用于在所述第二采集单元封装并存储所述目标日志事件之后,清空所述缓存中的日志消息。
可选的,所述标识信息格式具体为正则表达式,所述第一标识信息、所述第二标识信息均为正则匹配消息体。
在本实施例中,在按照每次读取一行日志消息的方式采集日志消息的过程中,每次读取日志消息时通过对读取的日志消息匹配标识信息格式的方式查找出所读取的日志消息中存在的标识信息,并将在相邻两次查找出的标识信息之间所有读取到的日志消息封装成同一日志事件进行存储,这样标识信息与其对应的日志消息能够全部封装在同一个日志事件中进行存储,因此,在日志搜索的过程中就能够通过标识信息对日志消息进行查询和提取而不会存在遗漏,日志搜索的便利性得以提高。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (6)

1.一种采集日志消息的方法,其特征在于,包括:
读取第一行日志消息;
若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息;
读取第三行日志消息;
若在所述第三行日志消息中不具有与标识信息格式相匹配的信息,采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息;
其中,所述第三行日志消息是在所述第一行日志消息与第二行日志消息之间读取的一行日志消息;
读取所述第二行日志消息;
若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;
其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息;
其中,所述采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息,具体为:采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息保存到缓存;
所述采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,具体为:采集所述第二行日志消息中所述第二标识信息之前的日志消息保存到所述缓存;
所述采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息,具体为:采集所述第三行日志消息中所有的日志消息保存到所述缓存;
其中,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。
2.根据权利要求1所述的方法,其特征在于,在所述将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储之后,还包括:
清空所述缓存中的日志消息。
3.根据权利要求1所述的方法,其特征在于,所述标识信息格式具体为正则表达式,所述第一标识信息、所述第二标识信息均为正则匹配消息体。
4.一种采集日志消息的装置,其特征在于,包括:
第一读取单元,用于读取第一行日志消息;
第一采集单元,用于若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息;
第三读取单元,用于读取第三行日志消息;
第三采集单元,用于若在所述第三行日志消息中不具有与标识信息格式相匹配的信息,采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息;
第二读取单元,用于读取第二行日志消息;
第二采集单元,用于若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;
其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息;
其中,所述第一采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息保存到缓存;
所述第二采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第二行日志消息中所述第二标识信息之前的日志消息保存到所述缓存;
所述第三采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第三行日志消息中所有的日志消息保存到所述缓存;
其中,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。
5.根据权利要求4所述的装置,其特征在于,还包括:
清空单元,用于在所述第二采集单元封装并存储所述目标日志事件之后,清空所述缓存中的日志消息。
6.根据权利要求4所述的装置,其特征在于,所述标识信息格式具体为正则表达式,所述第一标识信息、所述第二标识信息均为正则匹配消息体。
CN201710108804.7A 2017-02-27 2017-02-27 一种采集日志消息的方法和装置 Active CN106919499B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710108804.7A CN106919499B (zh) 2017-02-27 2017-02-27 一种采集日志消息的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710108804.7A CN106919499B (zh) 2017-02-27 2017-02-27 一种采集日志消息的方法和装置

Publications (2)

Publication Number Publication Date
CN106919499A CN106919499A (zh) 2017-07-04
CN106919499B true CN106919499B (zh) 2021-06-11

Family

ID=59454416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710108804.7A Active CN106919499B (zh) 2017-02-27 2017-02-27 一种采集日志消息的方法和装置

Country Status (1)

Country Link
CN (1) CN106919499B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729206A (zh) * 2017-09-04 2018-02-23 上海斐讯数据通信技术有限公司 告警日志的实时分析方法、系统和计算机处理设备
CN109614380A (zh) * 2018-11-27 2019-04-12 银清科技(北京)有限公司 日志处理方法、系统、计算机设备及可读介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532943A (zh) * 2013-10-08 2014-01-22 北京神州绿盟信息安全科技股份有限公司 web应用防火墙设备和安全防护日志的异步处理方法
CN104239475A (zh) * 2014-09-03 2014-12-24 北京优特捷信息技术有限公司 一种时间序列数据分析方法及装置
WO2016180265A1 (zh) * 2015-05-13 2016-11-17 阿里巴巴集团控股有限公司 日志事件处理方法和装置
CN106202004A (zh) * 2016-07-13 2016-12-07 上海轻维软件有限公司 基于正则表达及分隔符的组合式数据切割方法
CN106055451B (zh) * 2016-05-23 2019-02-15 努比亚技术有限公司 信息处理方法及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532943A (zh) * 2013-10-08 2014-01-22 北京神州绿盟信息安全科技股份有限公司 web应用防火墙设备和安全防护日志的异步处理方法
CN104239475A (zh) * 2014-09-03 2014-12-24 北京优特捷信息技术有限公司 一种时间序列数据分析方法及装置
WO2016180265A1 (zh) * 2015-05-13 2016-11-17 阿里巴巴集团控股有限公司 日志事件处理方法和装置
CN106055451B (zh) * 2016-05-23 2019-02-15 努比亚技术有限公司 信息处理方法及电子设备
CN106202004A (zh) * 2016-07-13 2016-12-07 上海轻维软件有限公司 基于正则表达及分隔符的组合式数据切割方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ELK logstash处理多行事件;ronin47;《CSDN》;20160105;第2-5页 *
基于机器学习的EMC存储设备;中国优秀硕士学位论文全文数据库 信息科技辑;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160815(第08期);第四章 *

Also Published As

Publication number Publication date
CN106919499A (zh) 2017-07-04

Similar Documents

Publication Publication Date Title
CN106656536B (zh) 一种用于处理服务调用信息的方法与设备
CN111831548B (zh) 一种依赖关系拓扑图的绘制方法和装置
CN110321387A (zh) 数据同步方法、设备及终端设备
CN108322350B (zh) 业务监控方法及装置和电子设备
CN108847977A (zh) 一种业务数据的监控方法、存储介质和服务器
CN103209153B (zh) 消息处理方法、装置及系统
CN112380473B (zh) 数据采集与同步方法、装置、设备及存储介质
CN109558397B (zh) 一种数据处理方法、装置、服务器及计算机存储介质
CN103078945B (zh) 对浏览器崩溃数据进行处理的方法与系统
CN103702053A (zh) 录像存储和检索方法及系统、监控系统
CN106209431A (zh) 一种告警关联方法及网管系统
CN106919499B (zh) 一种采集日志消息的方法和装置
CN111400378A (zh) 基于ElasticSearch的日志实时显示方法、装置、计算机设备和介质
CN111125298A (zh) 重建ntfs文件目录树的方法、设备及存储介质
CN110851756A (zh) 页面加载方法、装置、计算机可读存储介质及终端设备
CN110784377A (zh) 一种多云环境下的云监控数据统一管理的方法
CN110874301B (zh) 程序卡顿信息的获取方法和装置
US10761862B2 (en) Method and device for adding indicative icon in interactive application
CN114489477A (zh) 一种基于区块链的去中心化分布式存储方法
US8682899B2 (en) Apparatus and method for managing systems each including a plurality of configuration items
CN114461445A (zh) 数据恢复方法及装置、电子设备、计算机可读存储介质
CN108427675B (zh) 构建索引的方法及设备
CN110442439B (zh) 任务进程处理方法、装置和计算机设备
CN110740153B (zh) 一种监测数据获取方法、系统及装置
CN111291249A (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