CN113641523A - 一种日志处理方法及装置 - Google Patents

一种日志处理方法及装置 Download PDF

Info

Publication number
CN113641523A
CN113641523A CN202110896001.9A CN202110896001A CN113641523A CN 113641523 A CN113641523 A CN 113641523A CN 202110896001 A CN202110896001 A CN 202110896001A CN 113641523 A CN113641523 A CN 113641523A
Authority
CN
China
Prior art keywords
log
target
rule
log data
filter
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.)
Granted
Application number
CN202110896001.9A
Other languages
English (en)
Other versions
CN113641523B (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.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya 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 Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202110896001.9A priority Critical patent/CN113641523B/zh
Publication of CN113641523A publication Critical patent/CN113641523A/zh
Application granted granted Critical
Publication of CN113641523B publication Critical patent/CN113641523B/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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种日志处理方法及装置,所述方法包括:将目标日志数据输入至预先构建的日志过滤引擎中,由所述日志过滤引擎对所述目标日志数据进行处理,输出过滤后的日志数据,其中,所述日志过滤引擎包括多个采用链式结构连接的过滤器;确定与所述过滤后的日志数据相关的目标扫描规则;采用所述目标扫描规则对所述过滤后的日志数据进行扫描,以提取对应的日志关键内容,可以提升日志查询的效率,为后续基于日志的应用提供了良好的数据基础。

Description

一种日志处理方法及装置
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种日志处理方法及装置。
背景技术
开发人员在了解线上程序运行状态或者在程序发生崩溃时定位崩溃的场景中,日志是最重要的信息来源之一。现代化的软件系统复杂度极其高,各个模块都会打印大量的日志,并且日志的内容也不易读懂。面对这种大量的非结构化文本数据,现有的文本过滤工具难以满足基本的日志分析需求。
发明内容
本申请提供一种日志处理方法及装置,以解决现有技术的日志处理过程中日志过滤和日志分析存在的难以满足需求的问题。
第一方面,本申请实施例提供了一种日志处理方法,所述方法包括:
将目标日志数据输入至预先构建的日志过滤引擎中,由所述日志过滤引擎对所述目标日志数据进行处理,输出过滤后的日志数据,其中,所述日志过滤引擎包括多个采用链式结构连接的过滤器;
确定与所述过滤后的日志数据相关的目标扫描规则;
采用所述目标扫描规则对所述过滤后的日志数据进行扫描,以提取对应的日志关键内容。
第二方面,本申请实施例还提供了一种日志处理装置,所述装置包括:
日志过滤单元,用于将目标日志数据输入至预先构建的日志过滤引擎中,由所述日志过滤引擎对所述目标日志数据进行处理,输出过滤后的日志数据,其中,所述日志过滤引擎包括多个采用链式结构连接的过滤器;
扫描规则确定单元,用于确定与所述过滤后的日志数据相关的目标扫描规则;
规则扫描单元,用于采用所述目标扫描规则对所述过滤后的日志数据进行扫描,以提取对应的日志关键内容。
第三方面,本申请实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述第一方面的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面的方法。
本申请所提供的技术方案,具有如下有益效果:
在本实施例中,针对待处理的目标日志数据,在对该日志数据进行分析以提取关键内容之前,可以通过预先构建的、包括多个采用链式结构连接的过滤器的日志过滤引擎进行流水线的过滤处理,从结构上简化过滤任务,可以简化日志处理流程,提高日志处理效率。针对过滤后的日志数据,可以根据预先定义的目标扫描规则进行扫描,以提取对应的日志关键内容,可以提升日志查询的效率,为后续基于日志的应用提供了良好的数据基础。
附图说明
图1是本申请实施例一提供的一种日志处理方法实施例的流程图;
图2是本申请实施例二提供的一种日志处理方法实施例的流程图;
图3是本申请实施例二提供的一种日志过滤引擎的示意图;
图4是本申请实施例三提供的一种日志处理方法实施例的流程图;
图5是本申请实施例三提供的一种JSON结构的日志扫描规则的示意图;
图6是本申请实施例四提供的一种日志处理方法实施例的流程图;
图7是本申请实施例四提供的一种注解规则示意图;
图8是本申请实施例四提供的一种报表示意图;
图9是本申请实施例五提供的一种日志处理装置实施例的结构框图;
图10是本申请实施例六提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
实施例一
图1为本申请实施例一提供的一种日志处理方法实施例的流程图,本实施例可以应用于服务器中,也可以应用于客户端中,本实施例对此不作限制。
如图1所示,本实施例可以包括如下步骤:
步骤110,将目标日志数据输入至预先构建的日志过滤引擎中,由所述日志过滤引擎对所述目标日志数据进行处理,输出过滤后的日志数据,其中,所述日志过滤引擎包括多个采用链式结构连接的过滤器。
步骤120,确定与所述过滤后的日志数据相关的目标扫描规则。
步骤130,采用所述目标扫描规则对所述过滤后的日志数据进行扫描,以提取对应的日志关键内容。
在本实施例中,针对待处理的目标日志数据,在对该日志数据进行分析以提取关键内容之前,可以通过预先构建的、包括多个采用链式结构连接的过滤器的日志过滤引擎进行流水线的过滤处理,从结构上简化过滤任务,可以简化日志处理流程,提高日志处理效率。针对过滤后的日志数据,可以根据预先定义的目标扫描规则进行扫描,以提取对应的日志关键内容,可以提升日志查询的效率,为后续基于日志的应用提供了良好的数据基础。
实施例二
图2为本申请实施例二提供的一种日志处理方法实施例的流程图,本实施例在实施例一的基础上,对日志过滤引擎的处理过程进行说明。在日志过滤引擎中,过滤器可以包括顺序连接的输入过滤器、多个中间过滤器以及输出过滤器,其中,该输入过滤器对外暴露输入端口,该输出过滤器对外暴露输出端口。如图3所示,日志过滤引擎的最底层元素为过滤器,过滤器之间相互独立,不存在任何数据间的耦合,其对外只暴露输入端口和输出端口这两个端口,过滤器1为输入过滤器,提供输入端口;过滤器N为输出过滤器,提供输出端口;过滤器2至过滤器N-1为中间过滤器,用于实际的过滤处理作业。
如图2所示,本实施例可以包括如下步骤:
步骤210,经由所述输入端口将目标日志数据输入至所述输入过滤器中。
步骤220,由所述输入过滤器将所述目标日志数据输入至与其连接的第一个中间过滤器中。
步骤230,由所述第一个中间过滤器开始按顺序对所述目标日志数据进行处理,直到最后一个中间过滤器处理完毕以后,由最后一个中间过滤器将过滤后的日志数据传输至所述输出过滤器中。
步骤240,由所述输出过滤器将所述过滤后的日志数据经由所述输出端口进行输出。
在该实施例中,输入过滤器的作用是接收日志数据,并将日志数据传送至与其连接的第一个中间过滤器中,除此以外,输入过滤器不对输入的数据进行任何多余的操作。输出过滤器的作用是接收与其连接的最后一个中间过滤器输出的最终过滤结果(即过滤后的日志数据),并将过滤结果通过输出接口进行输出,除此以外,输出过滤器不对输出的数据进行任何多余的操作。各中间过滤器的作用是按照其连接的顺序以及处理逻辑对日志数据进行流水线的处理。
例如,在日志过滤引擎中各过滤器的流水线的关键接口方法如下:
Figure BDA0003197901450000051
其中,接口input方法为流水线设置输入数据;forward方法自动前向计算,遍历过滤器,对输入的日志数据进行过滤;output方法取出处理完成的数据进行输出。
在一种实施例中,过滤引擎的上层结构为构造器,该构造器可以用于组织过滤器,从而构造日志过滤引擎的流水线结构。按照开发者添加的过滤元件序列,构造器会自动对过滤元件进行连接,连接过程中自动进行兼容性检测,若接口不兼容则构建失败。一种示例性的构建流程如下:
创建默认的输入过滤器,并将所述输入过滤器置于最前端;
获取中间过滤器列表,所述中间过滤器列表包括顺序排列的多个中间过滤器的标识;
依次对所述中间过滤器列表中的各中间过滤器进行兼容性检查,以检查当前中间过滤器的输入类型与上一个连接的过滤器的输出类型是否相同,若相同则对两个过滤器进行连接,若不相同则抛出异常,以此类推,直到所有的中间过滤器连接完毕;
创建默认的输出过滤器,将所述输出过滤器置于末端,并与最后一个中间过滤器进行连接。
在实现时,各过滤器可以通过抽象类实现,其关键接口方法如下:
Figure BDA0003197901450000061
其中,接口conPreElement、conNextElement提供了过滤器前向和后向连接其他过滤器的能力;getSourceType、getOutputType提供了过滤器的输入端和输出端的数据类型获取的方式;compatible提供了过滤器兼容性检测的功能。
需要说明的是,过滤器的输入端和输出端的数据类型可以由开发人员根据实际情况设定,数据类型兼容的端口才能相互连接完成数据处理,否则流水线构建失败。
上述的中间过滤器列表可以由开发人员根据实际业务需求选定的多个过滤器并设定其执行顺序后生成的列表,过滤引擎的上层结构为流水线结构,流水线结构只关心开发者需要实现的过滤时序,而不用考虑底层数据流动的具体细节。
步骤250,确定与所述过滤后的日志数据相关的目标扫描规则。
步骤260,采用所述目标扫描规则对所述过滤后的日志数据进行扫描,以提取对应的日志关键内容。
本实施例简化了日志数据的过滤处理流程,层次化的过滤引擎使得日志过滤功能简单高效,开发者只用考虑自己需要实现的过滤需求,然后通过继承的方式重写日志处理的基本逻辑,上层通过流水线的构造器按照所需的时序结构添加底层过滤器,流水线构造器会自动构造流水线,从端到端的对日志数据进行处理。该结构简单高效,有较高的灵活性,层次化的设计使得原本复杂逻辑层次分明,极大简化日志处理流程,并提高日志处理效率。
实施例三
图4为本申请实施例三提供的一种日志处理方法实施例的流程图,本实施例在实施例一或实施例二的基础上,对目标扫描规则的生成方式和应用场景进行说明。本实施例可以应用于需要分业务、分模块对日志进行自动化分析的场景。
如图4所示,本实施例可以包括如下步骤:
步骤410,将目标日志数据输入至预先构建的日志过滤引擎中,由所述日志过滤引擎对所述目标日志数据进行处理,输出过滤后的日志数据,其中,所述日志过滤引擎包括多个采用链式结构连接的过滤器。
步骤420,获取所述目标日志数据所属的业务模块对应的日志模板库,并将所述日志模板库对应的日志扫描规则作为目标扫描规则。
在实际中,日志数据一般都有固定的模式,由固定的格式串(格式串是指带占位符的字符串)以及参数组成,因此做日志分析时,可预先对不同业务模块的日志数据进行模板提取,形成不同业务模块的日志模板库,并对不同业务模块的日志模版库进行集中管理,其中,各日志模板中包括对应的日志扫描规则。则在对当前业务模块进行日志分析时,可以从集中管理的日志模板库中查找当前业务模块对应的日志模板库,并将当前业务模块对应的日志模板库中的扫描规则作为目标扫描规则。
在一种实施例中,当前业务模块对应的日志模板库可以采用如下方式生成:
获取所述业务模块的源代码;采用预先为所述业务模块设置的代码扫描规则对所述源代码进行扫描,以从所述源代码中识别出模板日志代码;根据所述模板日志代码,生成对应的日志模板;将所述日志模板采用JSON语句进行描述,得到所述日志模板对应的日志扫描规则。
具体的,该实施例从日志产生的源头出发,对需要进行日志分析的业务模块的源码进行代码分析,以生成对应的日志模板。在一种实现中,可以从远程的指定Git(Git是一种分布式的代码版本控制工具)仓库代码中查找当前业务模块的源代码。
获得当前业务模块的源代码以后,可以采用预先为该业务模块设定的一个或多个代码扫描规则对源代码进行扫描,以从源代码中识别出模板日志代码。其中,代码扫描规则主要利用正则表达式对特定的代码行进行匹配,并对匹配的代码行中的关键信息进行提取,然后对关键信息采用默认的几个键进行存储。对于日志代码而言,关键信息对应的键(或字段)可以包括日志级别、日志标签、日志字符串、日志格式串、参数列表等。
在一种示例中,如下表1所示,代码扫描规则中包含的信息可以有:规则编号、规则名、正则表达式、文件后缀、日志级别等:
Figure BDA0003197901450000091
表1
例如,按照上面定义的代码扫描规则的格式,某条代码扫描规则可以表示为:
“28mars日志x(\w+)2\("(.*?)"\);cc level log”
针对获取的当前业务模块的源代码,可以采用当前业务模块的一个或多个代码扫描规则来进行逐一扫描。在一种实现中,可以遍历当前业务模块的源代码中的源代码目录,从中定位出代码扫描规则中指定的需要扫描的文件,取出相应的代码行,与当前代码扫描规则进行逐一匹配,以识别出模板日志代码。
得到模板日志代码以后,可以根据模板日志代码生成代码扫描中间结果,示例性地,该代码扫描中间结果除了可以包括上述的模板日志代码以外,还可以包括该日志代码所在的文件和行号、命中的代码扫描规则、针对该依据代码扫描规则解析出的字段内容等。
在得到模板日志代码以后,可以进一步根据该模板日志代码生成对应的日志模板。在一种实施例中,根据该模板日志代码生成对应的日志模板的步骤,进一步可以包括如下步骤:
识别出所述模板日志代码中的占位符,将所述占位符替换为指定符号,并提取所述占位符对应的代码参数名;将所述代码参数名采用字符数组进行存储。
在实现时,可以对代码扫描中间结果进行解析,识别模板日志代码中的格式串的占位符。对于识别出的占位符,可以进行如下两种操作:其中一种操作是,将占位符统一替换为指定符号,例如,指定符号可以为Musk符号。另一种操作是,将占位符对应的代码参数名进行提取,并将提取的代码参数名使用字符数组进行存储。
经过上述操作得到日志模板以后,可以将日志模板采用JSON语句进行描述,得到日志模板对应的日志扫描规则,生成的JSON文档结构的日志扫描规则可以如图5所示。
步骤430,将所述目标扫描规则中的指定符号替换为指定正则表达式符号,并采用所述目标扫描规则对所述过滤后的日志数据进行匹配,将匹配到的参数值与所述目标扫描规则中的代码参数名进行关联记录,其中,所述参数值为日志关键内容的值。
有了当前业务模块的日志模板以及其日志扫描规则以后,就可以利用日志扫描规则进行日志关键内容的提取。具体的,对于过滤后的日志数据,可以逐条日志进行模板匹配。在匹配时,可以先将目标扫描规则中的指定符号(如Musk符号<***>)替换为指定正则表达式符号(如(.*)),然后采用替换后的扫描规则进行匹配。若匹配成功,则将匹配的值与匹配成功的代码参数名进行一一对应,其中代码参数名为键(key),匹配的值即关键内容的值,为该键对应的值(value)。
经过扫描日志进行关键内容提取后,最终得到的结果为基于事件序列的日志事件以及事件中参数的具体值。后续可用机器学习算法对事件序列以及参数值进行异常检测等等操作。
在本实施例中,在需要对当前业务模块进行日志分析时,可以获取当前业务模块对应的日志模板库,该日志模板库是通过对日志的模板进行提取后得到的,各日志模板具有对应的日志扫描规则。通过当前业务模块的日志模板和相关的日志扫描规则来对当前业务模块进行关键内容的提取,这样可以极大的降低日志分析时数据的规模。另外,提取出的关键内容会作为对应的代码参数名的参数值,与对应的代码参数名进行关联存储,在后续的日志分析中,例如数据统计,日志异常分析等,均可利用日志模板来对日志数据进行向量化,从而简化日志分析的难度,并为自动化运维的日志监控端提供了可能。
实施例四
图6为本申请实施例四提供的一种日志处理方法实施例的流程图,本实施例在实施例一或实施例二或实施例三的基础上,对日志分析过程作进一步的说明。如图6所示,本实施例可以包括如下步骤:
步骤610,将目标日志数据输入至预先构建的日志过滤引擎中,由所述日志过滤引擎对所述目标日志数据进行处理,输出过滤后的日志数据,其中,所述日志过滤引擎包括多个采用链式结构连接的过滤器。
步骤620,确定与所述过滤后的日志数据相关的目标扫描规则。
在一种实施例中,目标扫描规则可以为人工自定义的规则。根据业务目标的不同可以设定不同的目标扫描规则。当将人工自定义的目标扫描规则输入至执行本实施例的装置时,可以由该装置的软件程序解析目标扫描规则,并按照规则对日志文件进行批处理。
在实际中,日志扫描规则的定义是个较为复杂的问题,设计过程中需要考虑到通用性的问题,规则需要的内容需要尽可能的少,规则尽可能简单。可以将日志扫描规则的数据格式设定为JSON类型文档,方便程序解析,并且JSON有良好的可阅读特性,方便规则编写人员后期修改。
在设计日志扫描规则时,规则中可以包含每条日志的默认字段,如时间戳、标签、日志级别等。这些默认字段在程序运行时可以用带(d_)前缀的Hash表存储,日志中的具体字段名与Hash表中具体键名的对应关系可以如下表所示:
Figure BDA0003197901450000121
Figure BDA0003197901450000131
需要说明的是,默认字段为对每条日志在解析后自动获取的信息,其也可以不必在日志扫描规则中显式定义,而是通过键名对默认字段进行直接引用。除默认字段外,开发人员还可以定义自定义字段,具体的定义方式是对需要解析的某条日志编写正则表达式,并对正则表达式中的分组进行命名,命名规则可以与默认字段相似,例如使用带(u_)前缀的键表示。
例如,假设某条日志的正则表达式为:OnForeground:(false|true),change:(false:true),该正则表达式包含两个可提取内容的分组,这两个分组的定义如下表所示:
Figure BDA0003197901450000132
另外,对于自定义字段,多种数值通常代表着不同的含义,数值在阅读时无法直观的表达出具体的含义,因此对自定义字段的值,可选择的使用映射表进行转译,若不在映射表之内则使用原值。例如,针对上例,映射表的具体定义可以参考下表所示:
Figure BDA0003197901450000133
步骤630,采用所述目标扫描规则对所述过滤后的日志数据进行扫描,以提取对应的日志关键内容。
步骤640,若所述目标扫描规则包括注解规则,则按照所述注解规则生成所述日志关键内容对应的注解内容,并以所述注解规则的标识作为所述注解内容的标签,并将所述注解内容追加到对应的日志数据的指定位置。
在该实施例中,目标扫描规则可以包括注解规则,注解规则用于对日志数据中的非结构化数据或者不容易读懂的日志数据进行注解。
在实现时,在注解规则中可以定义一个格式串(formatString),格式串引用到的变量可以用${变量名}进行标识,例如某条个格式串可以表示如下:
formatString:”时间:${d_timestamp}状态:${u_foreground_status}状态是否变化:${u_is_change}”;
该格式串对应的注解规则可以如图7所示。
当根据注解规则识别到日志中的日志关键内容时,可以根据注解规则中设计的日志内容与注解内容的绑定关系,确定当前日志关键内容对应的注解内容。然后以当前注解规则的标识作为该注解内容的标签,并将携带标签的该注解内容追加到对应的日志数据的指定位置。例如,将该注解内容作为一条日志数据,追加到匹配的日志数据的后面,即作为当前匹配到的日志数据的下一条日志数据。
例如,图7所示的注解规则的使用效果,如下表所示:
Figure BDA0003197901450000141
步骤650,若所述目标扫描规则包括报表规则,则按照所述报表规则将所述日志关键内容以数据报表的形式进行展示。
在该实施例中,目标扫描规则可以包括报表规则,报表规则用于对日志数据中的分析结果以报表的形式呈现。
在报表规则中,可以对报表的结构进行定义,如下表所示:
Figure BDA0003197901450000151
采用报表规则生成的报表的一种示例可以如图8所示。
在本实施例中,采用注解规则可高效地将一些信息量较大的日志进行转译,例如,对日志中的错误码自动转译为错误信息,这样开发人员就不用查询错误表来确定具体发生的错误是什么。利用报表规则可高效地将非结构化的日志数据转化为结构化的二维表格,通过表格可快速预览全局日志文件中发生的关键事件。通过注解规则和报表规则,可以将复杂难懂的日志数据生成可读性高的数据形式,从而提高开发人员解读日志的效率和查询日志的效率。
实施例五
图9为本申请实施例五提供的一种日志处理装置实施例的结构框图,可以包括如下单元:
日志过滤单元910,用于将目标日志数据输入至预先构建的日志过滤引擎中,由所述日志过滤引擎对所述目标日志数据进行处理,输出过滤后的日志数据,其中,所述日志过滤引擎包括多个采用链式结构连接的过滤器;
扫描规则确定单元920,用于确定与所述过滤后的日志数据相关的目标扫描规则;
规则扫描单元930,用于采用所述目标扫描规则对所述过滤后的日志数据进行扫描,以提取对应的日志关键内容。
在一种实施例中,所述过滤器包括顺序连接的输入过滤器、多个中间过滤器以及输出过滤器,所述输入过滤器对外暴露输入端口,所述输出过滤器对外暴露输出端口;
所述日志过滤单元910具体用于:
经由所述输入端口将所述目标日志数据输入至所述输入过滤器中;
由所述输入过滤器将所述目标日志数据输入至与其连接的第一个中间过滤器中;
由所述第一个中间过滤器开始按顺序对所述目标日志数据进行处理,直到最后一个中间过滤器处理完毕以后,由最后一个中间过滤器将过滤后的日志数据传输至所述输出过滤器中;
由所述输出过滤器将所述过滤后的日志数据经由所述输出端口进行输出。
在一种实施例中,所述装置还可以包括用于构建所述日志过滤引擎的构建单元,包括:
创建默认的输入过滤器,并将所述输入过滤器置于最前端;
获取中间过滤器列表,所述中间过滤器列表包括顺序排列的多个中间过滤器的标识;
依次对所述中间过滤器列表中的各中间过滤器进行兼容性检查,以检查当前中间过滤器的输入类型与上一个连接的过滤器的输出类型是否相同,若相同则对两个过滤器进行连接,若不相同则抛出异常,以此类推,直到所有的中间过滤器连接完毕;
创建默认的输出过滤器,将所述输出过滤器置于末端,并与最后一个中间过滤器进行连接。
在一种实施例中,所述扫描规则确定单元920具体用于:
获取所述目标日志数据所属的业务模块对应的日志模板库,并将所述日志模板库对应的日志扫描规则作为目标扫描规则。
在一种实施例中,所述装置还可以包括用于确定当前业务模块对应的日志模板库的模板库确定单元,用于:
获取所述业务模块的源代码;
采用预先为所述业务模块设置的代码扫描规则对所述源代码进行扫描,以从所述源代码中识别出模板日志代码;
根据所述模板日志代码,生成对应的日志模板;
将所述日志模板采用JSON语句进行描述,得到所述日志模板对应的日志扫描规则。
在一种实施例中,所述模板库确定单元还用于:
识别出所述模板日志代码中的占位符,将所述占位符替换为指定符号,并提取所述占位符对应的代码参数名;
将所述代码参数名采用字符数组进行存储。
在一种实施例中,所述规则扫描单元930具体用于:
将所述目标扫描规则中的指定符号替换为指定正则表达式符号;
采用所述目标扫描规则对所述过滤后的日志数据进行匹配,并将匹配到的参数值与所述目标扫描规则中的代码参数名进行关联记录,其中,所述参数值为日志关键内容的值。
在一种实施例中,所述目标扫描规则包括注解规则;所述装置还可以包括如下单元:
注解单元,用于按照所述注解规则生成所述日志关键内容对应的注解内容,以所述注解规则的标识作为所述注解内容的标签,并将所述注解内容追加到对应的日志数据的指定位置。
在一种实施例中,所述目标扫描规则包括报表规则;所述装置还包括如下单元:
报表展示单元,用于按照所述报表规则将所述日志关键内容以数据报表的形式进行展示。
本申请实施例所提供的一种日志处理装置可执行本申请实施例一至实施例四任一实施例中的一种日志处理方法,具备执行方法相应的功能模块和有益效果。
实施例六
图10为本申请实施例六提供的一种电子设备的结构示意图,如图10所示,该电子设备包括处理器1010、存储器1020、输入装置1030和输出装置1040;电子设备中处理器1010的数量可以是一个或多个,图10中以一个处理器1010为例;电子设备中的处理器1010、存储器1020、输入装置1030和输出装置1040可以通过总线或其他方式连接,图10中以通过总线连接为例。
存储器1020作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的上述实施例对应的程序指令/模块。处理器1010通过运行存储在存储器1020中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的方法实施例中提到的方法。
存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器1020可进一步包括相对于处理器1010远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置1030可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置1040可包括显示屏等显示设备。
实施例七
本申请实施例七还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行上述方法实施例中的方法。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本申请任意实施例所提供的方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

Claims (12)

1.一种日志处理方法,其特征在于,所述方法包括:
将目标日志数据输入至预先构建的日志过滤引擎中,由所述日志过滤引擎对所述目标日志数据进行处理,输出过滤后的日志数据,其中,所述日志过滤引擎包括多个采用链式结构连接的过滤器;
确定与所述过滤后的日志数据相关的目标扫描规则;
采用所述目标扫描规则对所述过滤后的日志数据进行扫描,以提取对应的日志关键内容。
2.根据权利要求1所述的方法,其特征在于,所述过滤器包括顺序连接的输入过滤器、多个中间过滤器以及输出过滤器,所述输入过滤器对外暴露输入端口,所述输出过滤器对外暴露输出端口;
所述将目标日志数据输入至预先构建的日志过滤引擎中,由所述日志过滤引擎对所述目标日志数据进行处理,输出过滤后的日志数据,包括:
经由所述输入端口将所述目标日志数据输入至所述输入过滤器中;
由所述输入过滤器将所述目标日志数据输入至与其连接的第一个中间过滤器中;
由所述第一个中间过滤器开始按顺序对所述目标日志数据进行处理,直到最后一个中间过滤器处理完毕以后,由最后一个中间过滤器将过滤后的日志数据传输至所述输出过滤器中;
由所述输出过滤器将所述过滤后的日志数据经由所述输出端口进行输出。
3.根据权利要求2所述的方法,其特征在于,所述日志过滤引擎采用如下方式构建:
创建默认的输入过滤器,并将所述输入过滤器置于最前端;
获取中间过滤器列表,所述中间过滤器列表包括顺序排列的多个中间过滤器的标识;
依次对所述中间过滤器列表中的各中间过滤器进行兼容性检查,以检查当前中间过滤器的输入类型与上一个连接的过滤器的输出类型是否相同,若相同则对两个过滤器进行连接,若不相同则抛出异常,以此类推,直到所有的中间过滤器连接完毕;
创建默认的输出过滤器,将所述输出过滤器置于末端,并与最后一个中间过滤器进行连接。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述确定与所述过滤后的日志数据相关的目标扫描规则,包括:
获取所述目标日志数据所属的业务模块对应的日志模板库,并将所述日志模板库对应的日志扫描规则作为目标扫描规则。
5.根据权利要求4所述的方法,其特征在于,所述业务模块对应的日志模板库采用如下方式获得:
获取所述业务模块的源代码;
采用预先为所述业务模块设置的代码扫描规则对所述源代码进行扫描,以从所述源代码中识别出模板日志代码;
根据所述模板日志代码,生成对应的日志模板;
将所述日志模板采用JSON语句进行描述,得到所述日志模板对应的日志扫描规则。
6.根据权利要求5所述的方法,其特征在于,所述根据所述模板日志代码,生成对应的日志模板,包括:
识别出所述模板日志代码中的占位符,将所述占位符替换为指定符号,并提取所述占位符对应的代码参数名;
将所述代码参数名采用字符数组进行存储。
7.根据权利要求6所述的方法,其特征在于,所述采用所述目标扫描规则对所述过滤后的日志数据进行扫描,以提取对应的日志关键内容,包括:
将所述目标扫描规则中的指定符号替换为指定正则表达式符号;
采用所述目标扫描规则对所述过滤后的日志数据进行匹配,并将匹配到的参数值与所述目标扫描规则中的代码参数名进行关联记录,其中,所述参数值为日志关键内容的值。
8.根据权利要求1-3任一项所述的方法,其特征在于,所述目标扫描规则包括注解规则;
在采用所述目标扫描规则对所述过滤后的日志数据进行扫描,以提取对应的日志关键内容之后,所述方法还包括:
按照所述注解规则生成所述日志关键内容对应的注解内容;
以所述注解规则的标识作为所述注解内容的标签,并将所述注解内容追加到对应的日志数据的指定位置。
9.根据权利要求1-3任一项所述的方法,其特征在于,所述目标扫描规则包括报表规则;
在采用所述目标扫描规则对所述过滤后的日志数据进行扫描,以提取对应的日志关键内容之后,所述方法还包括:
按照所述报表规则将所述日志关键内容以数据报表的形式进行展示。
10.一种日志处理装置,其特征在于,所述装置包括:
日志过滤单元,用于将目标日志数据输入至预先构建的日志过滤引擎中,由所述日志过滤引擎对所述目标日志数据进行处理,输出过滤后的日志数据,其中,所述日志过滤引擎包括多个采用链式结构连接的过滤器;
扫描规则确定单元,用于确定与所述过滤后的日志数据相关的目标扫描规则;
规则扫描单元,用于采用所述目标扫描规则对所述过滤后的日志数据进行扫描,以提取对应的日志关键内容。
11.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9任一项所述的方法。
CN202110896001.9A 2021-08-05 2021-08-05 一种日志处理方法及装置 Active CN113641523B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110896001.9A CN113641523B (zh) 2021-08-05 2021-08-05 一种日志处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110896001.9A CN113641523B (zh) 2021-08-05 2021-08-05 一种日志处理方法及装置

Publications (2)

Publication Number Publication Date
CN113641523A true CN113641523A (zh) 2021-11-12
CN113641523B CN113641523B (zh) 2024-06-21

Family

ID=78419696

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110896001.9A Active CN113641523B (zh) 2021-08-05 2021-08-05 一种日志处理方法及装置

Country Status (1)

Country Link
CN (1) CN113641523B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116186188A (zh) * 2023-04-21 2023-05-30 智道网联科技(北京)有限公司 地图引擎的日志数据处理方法及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779087A (zh) * 2011-05-06 2012-11-14 Sap股份公司 业务过程日志记录的系统和方法
CN106682097A (zh) * 2016-12-01 2017-05-17 北京奇虎科技有限公司 一种处理日志数据的方法和装置
CN111708860A (zh) * 2020-06-15 2020-09-25 北京优特捷信息技术有限公司 信息提取方法、装置、设备及存储介质
CN112667672A (zh) * 2021-01-06 2021-04-16 北京启明星辰信息安全技术有限公司 日志解析方法及解析装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779087A (zh) * 2011-05-06 2012-11-14 Sap股份公司 业务过程日志记录的系统和方法
CN106682097A (zh) * 2016-12-01 2017-05-17 北京奇虎科技有限公司 一种处理日志数据的方法和装置
CN111708860A (zh) * 2020-06-15 2020-09-25 北京优特捷信息技术有限公司 信息提取方法、装置、设备及存储介质
CN112667672A (zh) * 2021-01-06 2021-04-16 北京启明星辰信息安全技术有限公司 日志解析方法及解析装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MB5FE55C05CCC1D: "阿里云日志服务日志过滤器配置", pages 1 - 6, Retrieved from the Internet <URL:https://blog.51cto.com/u_15067246/4762392> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116186188A (zh) * 2023-04-21 2023-05-30 智道网联科技(北京)有限公司 地图引擎的日志数据处理方法及相关设备

Also Published As

Publication number Publication date
CN113641523B (zh) 2024-06-21

Similar Documents

Publication Publication Date Title
US10237295B2 (en) Automated event ID field analysis on heterogeneous logs
CN110532019B (zh) 一种软件代码片段历史追溯的方法
CN115061721A (zh) 一种报表生成方法、装置、计算机设备及存储介质
CN106062751A (zh) 对与数据类型有关的数据剖析操作的管理
CN113704094A (zh) 测试用例知识库构建方法、装置、电子设备及存储介质
CN115358200A (zh) 一种基于SysML元模型的模板化文档自动生成方法
CN112433705A (zh) 脚本生成方法、装置、电子设备及存储介质
JP6955676B2 (ja) ログ分析方法、システムおよび記録媒体
JP2008305386A (ja) プログラムパターン分析装置、パターン出現状況情報生産方法、パターン情報生成装置、およびプログラム
CN111813680A (zh) 测试脚本的生成方法、装置、计算机设备和存储介质
CN113641523B (zh) 一种日志处理方法及装置
CN107330031B (zh) 一种数据存储的方法、装置及电子设备
CN117093556A (zh) 日志分类方法、装置、计算机设备及计算机可读存储介质
CN114611039B (zh) 异步加载规则的解析方法、装置、存储介质和电子设备
CN115544050A (zh) 操作日志记录方法、装置、设备及存储介质
CN115357625A (zh) 结构化数据比对方法、装置、电子设备及存储介质
WO2021129849A1 (zh) 日志处理方法、装置、设备和存储介质
CN112699279A (zh) 组件自动化处理方法、装置、设备和存储介质
JP5487078B2 (ja) ソフトウェア資産整理方法及び装置
JP5042148B2 (ja) 情報処理システム、情報処理方法、およびプログラム
CN113138936B (zh) 数据处理方法、装置、存储介质及处理器
KR101423110B1 (ko) 소프트웨어의 오류 로그 분석 방법 및 시스템
CN118250349A (zh) 一种协议文本差异识别方法、装置、设备及存储介质
CN114253548A (zh) 一种xml文档处理方法、装置、电子设备及存储介质
CN114860484A (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