CN109684290B - 日志存储方法、装置、设备及计算机可读存储介质 - Google Patents
日志存储方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109684290B CN109684290B CN201811562610.5A CN201811562610A CN109684290B CN 109684290 B CN109684290 B CN 109684290B CN 201811562610 A CN201811562610 A CN 201811562610A CN 109684290 B CN109684290 B CN 109684290B
- Authority
- CN
- China
- Prior art keywords
- log
- template
- log information
- content
- information
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种日志存储方法、装置、设备及计算机可读存储介质,通过获取待存储的日志文件的每条日志信息,所述日志信息中包含多个内容字段;将每条日志信息分别与日志模板库中的模板进行匹配,得到与日志信息对应的模板信息;日志模板库中包含多个模板,每个模板的尾部均为通配符;根据与每条日志信息匹配的模板信息和日志信息中与通配符对应匹配的内容字段存储日志信息。本实施例的方法基于日志模板对待存储的日志文件进行存储,极大的减少了日志文件存储的数据量,并且可以对日志文件的单条日志信息进行存储和读取,不需要将所有日志文件存储到一个数据包中,能够极大提高了日志信息存储和读取的速度,降低了系统资源您的消耗。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种日志存储方法、装置、设备及计算机可读存储介质。
背景技术
当今因特网和云服务每天都要产生数量惊人的日志流,存储日志流消耗了大量的磁盘空间并产生巨额的开销。人们通常在将日志存储到磁盘前对其进行压缩以减少数据的大小。
传统的日志存储方法通常将日志压缩成一个压缩文件进行存储,当需要进行读取时存在着解压消耗内存和CPU计算资源的问题,将日志还原的过程资源内存和CPU计算消耗巨大。资源消耗主要表现在以下方面:当需要读取某一条日志时往往需要将整个日志压缩文件进行解压,解压过程中的内存和CPU计算资源消耗巨大,解压效率低下。
发明内容
本发明提供一种日志存储方法、装置、设备及计算机可读存储介质,以实现基于日志模板对日志进行存储,减少了日志存储的数据量,并且可以单条日志的存储和读取,提高日志存储和读取的速度、降低系统资源的消耗。
本发明的第一方面是提供一种日志存储方法,包括:
获取待存储的日志文件的每条日志信息,所述日志信息中包含多个内容字段;
将每条所述日志信息分别与日志模板库中的模板进行匹配,得到与所述日志信息对应的模板信息;所述日志模板库中包含多个模板,每个所述模板的尾部均为通配符;
根据与每条所述日志信息匹配的模板信息和所述日志信息中与所述通配符对应匹配的内容字段存储所述日志信息。
本发明的第二方面是提供一种日志存储装置,包括:
获取模块,用于获取待存储的日志文件的每条日志信息,所述日志信息中包含多个内容字段;
处理模块,用于将每条所述日志信息分别与日志模板库中的模板进行匹配,得到与所述日志信息对应的模板信息;所述日志模板库中包含多个模板,每个所述模板的尾部均为通配符;
存储模块,用于根据与每条所述日志信息匹配的模板信息和所述日志信息中与所述通配符对应匹配的内容字段存储所述日志信息。
本发明的第三方面是提供一种日志存储设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
本发明的第四方面是提供一种计算机可读存储介质,其上存储有计算机程序;
所述计算机程序被处理器执行时实现如第一方面所述的方法。
本发明提供的日志存储方法、装置、设备及计算机可读存储介质,通过获取待存储的日志文件的每条日志信息,所述日志信息中包含多个内容字段;将每条日志信息分别与日志模板库中的模板进行匹配,得到与日志信息对应的模板信息;日志模板库中包含多个模板,每个模板的尾部均为通配符;根据与每条日志信息匹配的模板信息和日志信息中与通配符对应匹配的内容字段存储日志信息。本实施例的方法基于日志模板对待存储的日志文件进行存储,极大的减少了日志文件存储的数据量,并且可以对日志文件的单条日志信息进行存储和读取,不需要将所有日志文件存储到一个数据包中,能够极大提高了日志信息存储和读取的速度,降低了系统资源您的消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的日志存储方法流程图;
图2为本发明另一实施例提供的日志存储方法流程图;
图3为本发明实施例中字典树构建过程示意图;
图4为本发明另一实施例提供的日志存储方法流程图;
图5为本发明实施例提供的日志存储装置的结构图;
图6为本发明实施例提供的日志存储设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的日志存储方法流程图。本实施例提供了一种日志存储方法,该方法具体步骤如下:
S101、获取待存储的日志文件的每条日志信息,所述日志信息中包含多个日志信息。
在本实施例中,待存储的日志文件中可包括多条日志信息,例如如下所示的日志文件,其中每一条包括时间戳字段以日志信息,日志信息中包括多个内容字段。
2018-01-21 20:54:45 101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker-443-101.*.*.*--200 0 0 29
2018-01-21 20:54:45 101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker-443-101.*.*.*--500 0 0 39
2018-01-21 20:54:45 101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker-443-101.*.*.*--200 0 0 129
2018-01-21 20:54:45 101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker-443-101.*.*.*--500 0 0 339
2018-01-21 20:54:45 101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker-443-101.*.*.*--200 0 0 52
2018-01-21 20:54:45 101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker-443-101.*.*.*--200 0 0 54
2018-01-21 20:54:45 101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker-443-101.*.*.*--500 0 0 35
其中时间戳字段例如“2018-01-21 20:54:45”,内容字段例如“101.201.*.*”、“POST”、“/mediasite/JobFarm/Controller.svc/Worker”、“101.*.*.*”、以及由单独的数字构成的内容字段,如“200”、“0”、“29”等。
S102、将每条所述日志信息分别与日志模板库中的模板进行匹配,得到与所述日志信息对应的模板信息;所述日志模板库中包含多个模板,每个所述模板的尾部均为通配符。
本实施例中,日志模板库中的模板可以预先获取,例如:
模板一:101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443101.*.*.*200*
模板二:101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443101.*.*.*500*
每个所述模板的尾部均为通配符。本实施例中可将待存储的日志文件的每条日志信息与日志模板库中的模板进行匹配,获取匹配的模板信息,例如上述的第一条日志信息与模板一相匹配,第二条日志信息与模板二相匹配。
S103、根据与每条所述日志信息匹配的模板信息和所述日志信息中与所述通配符对应匹配的内容字段存储所述日志信息。
本实施例中,在获取了每条日志信息匹配的模板信息后,获取日志信息与模板之间的差异部分,作为与所述通配符对应匹配的内容字段,进而根据模板信息以及日志信息中与通配符对应匹配的内容字段存储所述日志信息。具体上述第一条日志信息和第二条日志信息可存储为如下所示的形式:
模板一0 0 29
模板二0 0 39
本实施例提供的日志存储方法,通过获取待存储的日志文件的每条日志信息,所述日志信息中包含多个内容字段;将每条日志信息分别与日志模板库中的模板进行匹配,得到与日志信息对应的模板信息;日志模板库中包含多个模板,每个模板的尾部均为通配符;根据与每条日志信息匹配的模板信息和日志信息中与通配符对应匹配的内容字段存储日志信息。本实施例的方法基于日志模板对待存储的日志文件进行存储,极大的减少了日志文件存储的数据量,并且可以对日志文件的单条日志信息进行存储和读取,不需要将所有日志文件存储到一个数据包中,能够极大提高了日志信息存储和读取的速度,降低了系统资源您的消耗。
在上述实施例的基础上,如图2所示,S102所述将每条所述日志信息分别与日志模板库中的模板进行匹配之前,所述方法还包括:
S201、获取用于构建模板的日志文件的内容字段,并统计各内容字段出现的次数;
本实施例中,构建模板的日志文件可以为待存储的日志文件,也可以为其他的日志文件。首先获取用于构建模板的日志文件的内容字段。本实施例中可以首先根据预设分隔符识别构建模板的日志文件中每一日志信息中的内容字段,预设分隔符可以为空格、斜杠“/”等,当然也可以为其他的分隔符。在获取内容字段后,统计各内容字段在日志文件中的出现的次数,其中出现次数多的内容字段通常为固定词汇,与日志分类相关性很高,而出现次数低的内容字段通常为非固定词汇,与日志的相关性不高,因此可以基于内容字段的出现的次数构建日志模板。
本实施例中以上述列举的待存储的日志文件为例,其中的日志信息如下:
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*200 0 0 29
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*500 0 0 39
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*200 0 0 129
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*500 0 0 339
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*200 0 0 52
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*200 0 0 54
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*500 0 0 35
其中,可获取到的内容字段包括“101.201.*.*”、“POST”、“/mediasite/JobFarm/Controller.svc/Worker”、“101.*.*.*”以及由单独的数字构成的内容字段,如“200”、“0”、“29”等。然后统计各内容字段的出现的次数,例如“101.201.*.*”在上述7个日志信息中均出现了,因此其出现的次数为7。
更具体的,本实施例中对于内容字段为数字的,其出现的次数记为0;统计各非数字的内容字段在所述用于构建模板的日志文件中出现的次数。
本实施例中考虑到日志信息中的数字部分并非固定,通常需要改变,因此单独的数字构成的内容字段的出现的次数记为0,而值统计非数字的内容字段在用于构建模板的日志文件中出现的次数。
S202、通过各内容字段出现的次数构建字典树,所述字典树中各节点的节点内容为各所述内容字段。
本实施例中,根据各内容字段出现的次数构建字典树,字典树的每一节点为一个内容字段,在某一日志信息中出现的次数相邻的内容字段中,出现次数较高的内容字段为出现次数较低的内容字段的父节点。
更具体的,S202所述通过各内容字段出现的次数构建字典树,包括:
根据所述内容字段出现的次数对每一条所述日志信息的内容字段进行排序,对于各内容字段为数字的,按照其在排列在所述日志信息中出现的先后顺序排列在非数字的内容字段之后,生成内容语句,并记录排序规则;
根据所有所述内容语句中各内容字段的顺序构建一个字典树。
在本实施例中,将每一日志信息中的内容字段按照出现的次数排序,可以由高到低排序,构成新的句子,也即内容语句。例如对于某一日志信息“词1词2词3”,若统计出现的次数词3>词2>词1,则排序后的内容语句为“词3词2词1”。其中对于内容字段为数字的,仍按照其在排列在所述日志信息中出现的先后顺序排列在非数字的内容字段之后。
上述示例中的待存储的日志文件中的日志信息构建的内容语句可如下所示:
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*200 0 0 29
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*200 0 0 129
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*200 0 0 52
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*200 0 0 54
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*500 0 0 39
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*500 0 0 339
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443 101.*.*.*500 0 0 35
在本实施例中,还需要在排序的同时记录排序规则,例如将日志字段的第几个内容字段排在了内容语句中的第几个位置,以便于应用于模板匹配和已存储的日志信息的读取过程中,例如在模板匹配时将日志信息根据排序规则进行排序后在于模板进行匹配,再如在读取过程中可根据排序规则进行内容字段顺序的还原。
在获取所有的内容语句后,根据内容语句构建字典树(TrieTree),其中字典树又称单词查找树,是一种树形结构,其中字典树的每一节点为一个内容字段,具体的构建字典树的过程如下:
将各所述内容语句中的内容字段按照先后顺序依次加入所述字典树中,每一内容字段为所述字典树中的一个节点,且每一内容字段为前一内容字段的子节点;
在将内容字段加入字典树的过程中,若某一内容字段不为前一内容字段当前子节点的内容字段,则对前一内容字段创建新的子节点,从而形成分支。
如图3所示,以上述示例的内容语句为例,从根节点root开始,将各内容语句插入字典树中,依次插入“101.201.*.*”、“POST”、“/mediasite/JobFarm/Controller.svc/Worker”、“443”、“101.*.*.*”,然后出现“200”和“500”两个子节点,形成分支,在每一分支中继续后续节点的插入,从而完成所述字典树的构建。
S203、将所述字典树中至少包含两个子节点的节点内容设置成通配符。
本实施例中,将字典树中至少包含两个子节点的节点内容设置成通配符,从而形成模板。更具体的,S203所述将所述字典树中至少包含两个子节点的节点内容设置成通配符,包括:
将所述字典树中至少包含两个子节点的节点内容设置成通配符,根据从所述字典树的根节点到每一所述子节点的对应的内容字段、以及所述通配符,生成模板。
在本实施例中,可从根节点遍历所述字典树,直至查找到第一个分支,将该分支处的分支节点后的节点内容以通配符替换,以该分支处每一分支节点的内容字段及其前面所有节点的内容字段、以及通配符构建模板。
例如图3中,从根节点root开始遍历字典树,查找到第一个分支为“101.*.*.*”的两个子节点“200”和“500”,可将“200”和“500”后的各节点的节点内容以通配符替换,分别以字典树中节点“200”及节点“200”以前的各节点构建一个模板,以节点“500”及节点“500”以前的各节点构建一个模板,具体为:
模板一:101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443101.*.*.*200*
模板二:101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443101.*.*.*500*
在构建模板后,可将模板存储到日志模板库中。
需要说明的是,本实施例中并不限于以字典树的第一个分支构建模板,也可以其他的分支节点构建模板,例如字典树的第一个分支节点包括节点1和节点2,节点1具有节点3和节点4两个分支节点,而节点2没有分支节点,因此可以以节点2、节点3、节点4后的节点内容以通配符替换,从而形成3个模板。
在上述实施例的基础上,所述方法还包括:
若将每条所述日志信息分别与日志模板库中的模板进行匹配时,未得到与所述日志信息对应的模板信息,根据所述日志信息的内容字段及所述字典树构建新的模板,并以所述新的模板对所述日志信息进行存储。
例如对于如下日志信息:
101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker-443-101.*.*.*300 0 0 59
将其与日志模板库中的模板进行匹配时,可发现模板一和模板二与该日志信息均不匹配,此时可根据该日志信息的内容字段及字典树构建新的模板。具体的,可将该日志信息的内容字段按照排序规则依次加入到字典树中,对于“101.201.*.*”、“POST”、“/mediasite/JobFarm/Controller.svc/Worker”、“443”、“101.*.*.*”已经存在当前的字典树中,则不需要新建子节点,而到“300”时,由于当前的字典树中“101.*.*.*”的子节点中不存在该内容字段,因此新建一子节点,形成新的分支,在新的分支中继续插入后续的节点,并将新的分支节点后的节点内容设置为通配符,以当前的字典树中的新分支处的节点的内容字段及其前面所有节点的内容字段、以及通配符构建新日志模板,新日志模板如下:
模板三:101.201.*.*POST/mediasite/JobFarm/Controller.svc/Worker 443101.*.*.*300*
然后可根据模板三对该日志信息进行存储,从而实现日志模板的不断更新,满足不同的日志信息的存储。
在上述实施例的基础上,如图4所示,所述方法还包括:
S301、从已存储的日志文件中获取待读取的日志信息;
S302、根据所述待读取的日志信息中包含的与所述日志信息匹配的模板信息查找对应的模板;
S303、根据查找到的模板、以及所述待读取的日志信息中包含的与所述通配符对应匹配的内容字段,获取存储前原始的日志信息。
在本实施例中,首先从已存储的日志文件中获取待读取的日志信息,例如“模板一0 0 29”,根据模板信息从日志模板库中查找对应的日志模板,从而可根据查找到的模板一、以及所述通配符对应匹配的内容字段“0 0 29”,获取存储前原始的日志信息。
进一步的,S303所述根据查找到的模板、以及所述待读取的日志信息中包含的与所述通配符对应匹配的内容字段,获取存储前原始的日志信息,具体包括:
根据查找到的模板、所述模板对应的排序规则、以及所述待读取的日志信息中包含的与所述通配符对应匹配的内容字段,获取存储前原始的日志信息。
本实施例中,由于模板中内容字段是根据出现的顺序重新排序的,因此为将待读取的日志信息恢复成原始的顺序,还需要获取模板对应的排序规则,根据模板、模板对应的排序规则、以及待读取的日志信息中包含的与通配符对应匹配的内容字段,获取存储前原始的日志信息。
需要说明的是,在上述各实施例中,并未考虑时间戳字段,若待存储的日志文件需要存储时间戳字段时,可对将时间戳字段与模板信息以及日志信息中与通配符对应匹配的内容字段存储日志信息关联存储,例如:
2018-01-21 20:54:45模板一0 0 29
本实施例提供的日志存储方法,通过获取待存储的日志文件的每条日志信息,所述日志信息中包含多个内容字段;将每条日志信息分别与日志模板库中的模板进行匹配,得到与日志信息对应的模板信息;日志模板库中包含多个模板,每个模板的尾部均为通配符;根据与每条日志信息匹配的模板信息和日志信息中与通配符对应匹配的内容字段存储日志信息。本实施例的方法基于日志模板对待存储的日志文件进行存储,极大的减少了日志文件存储的数据量,并且可以对日志文件的单条日志信息进行存储和读取,不需要将所有日志文件存储到一个数据包中,能够极大提高了日志信息存储和读取的速度,降低了系统资源您的消耗。
图5为本发明实施例提供的日志存储装置的结构图。本实施例提供的日志存储装置可以执行日志存储方法实施例提供的处理流程,如图5所示,所述日志存储装置包括获取模块41、处理模块42以及存储模块43。
其中,获取模块41,用于获取待存储的日志文件的每条日志信息,所述日志信息中包含多个内容字段;
处理模块42,用于将每条所述日志信息分别与日志模板库中的模板进行匹配,得到与所述日志信息对应的模板信息;所述日志模板库中包含多个模板,每个所述模板的尾部均为通配符;
存储模块43,用于根据与每条所述日志信息匹配的模板信息和所述日志信息中与所述通配符对应匹配的内容字段存储所述日志信息。
进一步的,所述处理模块42还用于:
获取用于构建模板的日志文件的内容字段,并统计各内容字段出现的次数;
通过各内容字段出现的次数构建字典树,所述字典树中各节点的节点内容为各所述内容字段;
将所述字典树中至少包含两个子节点的节点内容设置成通配符。
进一步的,所述处理模块42用于:
对于内容字段为数字的,其出现的次数记为0;
统计各非数字的内容字段在所述用于构建模板的日志文件中出现的次数。
进一步的,所述处理模块42用于:
根据所述内容字段出现的次数对每一条所述日志信息的内容字段进行排序,对于各内容字段为数字的,按照其在排列在所述日志信息中出现的先后顺序排列在非数字的内容字段之后,生成内容语句,并记录排序规则;
根据所有所述内容语句中各内容字段的顺序构建一个字典树。
进一步的,所述处理模块42用于:
将所述字典树中至少包含两个子节点的节点内容设置成通配符,根据从所述字典树的根节点到每一所述子节点的对应的内容字段、以及所述通配符,生成模板。
进一步的,所述处理模块42还用于:
若将每条所述日志信息分别与日志模板库中的模板进行匹配时,未得到与所述日志信息对应的模板信息,根据所述日志信息的内容字段及所述字典树构建新的模板,并以所述新的模板对所述日志信息进行存储。
进一步的,所述处理模块42还用于:
从已存储的日志文件中获取待读取的日志信息;
根据所述待读取的日志信息中包含的与所述日志信息匹配的模板信息查找对应的模板;
根据查找到的模板、以及所述待读取的日志信息中包含的与所述通配符对应匹配的内容字段,获取存储前原始的日志信息。
进一步的,所述处理模块42用于:
根据查找到的模板、所述模板对应的排序规则、以及所述待读取的日志信息中包含的与所述通配符对应匹配的内容字段,获取存储前原始的日志信息。
本实施例提供的日志存储装置可以具体用于执行上述图1、图2、图4所提供的方法实施例,具体功能此处不再赘述。
本实施例提供的日志存储装置,通过获取待存储的日志文件的每条日志信息,所述日志信息中包含多个内容字段;将每条日志信息分别与日志模板库中的模板进行匹配,得到与日志信息对应的模板信息;日志模板库中包含多个模板,每个模板的尾部均为通配符;根据与每条日志信息匹配的模板信息和日志信息中与通配符对应匹配的内容字段存储日志信息。本实施例的装置基于日志模板对待存储的日志文件进行存储,极大的减少了日志文件存储的数据量,并且可以对日志文件的单条日志信息进行存储和读取,不需要将所有日志文件存储到一个数据包中,能够极大提高了日志信息存储和读取的速度,降低了系统资源您的消耗。
图6为本发明另一实施例提供的日志存储设备的结构图。如图6所示,本实施例提供一种日志存储设备,所述日志存储设备包括:处理器51;存储器52;以及计算机程序。
其中,所述计算机程序存储在所述存储器52中,并被配置为由所述处理器51执行以实现如图1、图2和图4所提供的方法实施例提供的处理流程,具体功能此处不再赘述。
更具体的,所述日志存储设备还包括接收器53和发送器54,接收器53、发送器54、处理器51、以及存储器52通过总线连接。
本发明另一实施例提供计算机可读存储介质,其上存储有计算机程序;
所述计算机程序被处理器执行时实现如上述实施例中所述的日志存储方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种日志存储方法,其特征在于,所述方法包括:
获取待存储的日志文件的每条日志信息,所述日志信息中包含多个内容字段;
将每条所述日志信息分别与日志模板库中的模板进行匹配,得到与所述日志信息对应的模板信息;所述日志模板库中包含多个模板,每个所述模板的尾部均为通配符;
根据与每条所述日志信息匹配的模板信息和所述日志信息中与所述通配符对应匹配的内容字段存储所述日志信息;
所述将每条所述日志信息分别与日志模板库中的模板进行匹配之前,所述方法还包括:
获取用于构建模板的日志文件的内容字段,并统计各内容字段出现的次数;
通过各内容字段出现的次数构建字典树,所述字典树中各节点的节点内容为各所述内容字段;
将所述字典树中至少包含两个子节点的节点内容设置成通配符;
所述通过各内容字段出现的次数构建字典树,包括:
根据所述内容字段出现的次数对每一条所述日志信息的内容字段进行排序,对于各内容字段为数字的,按照其在排列在所述日志信息中出现的先后顺序排列在非数字的内容字段之后,生成内容语句,并记录排序规则;
根据所有所述内容语句中各内容字段的顺序构建一个字典树。
2.根据权利要求1所述的方法,其特征在于,所述统计各内容字段出现的次数,包括:
对于内容字段为数字的,其出现的次数记为0;
统计各非数字的内容字段在所述用于构建模板的日志文件中出现的次数。
3.根据权利要求1所述的方法,其特征在于,所述将所述字典树中至少包含两个子节点的节点内容设置成通配符,包括:
将所述字典树中至少包含两个子节点的节点内容设置成通配符,根据从所述字典树的根节点到每一所述子节点的对应的内容字段、以及所述通配符,生成模板。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
若将每条所述日志信息分别与日志模板库中的模板进行匹配时,未得到与所述日志信息对应的模板信息,根据所述日志信息的内容字段及所述字典树构建新的模板,并以所述新的模板对所述日志信息进行存储。
5.根据权利要求1或3所述的方法,其特征在于,所述方法还包括:
从已存储的日志文件中获取待读取的日志信息;
根据所述待读取的日志信息中包含的与所述日志信息匹配的模板信息查找对应的模板;
根据查找到的模板、以及所述待读取的日志信息中包含的与所述通配符对应匹配的内容字段,获取存储前原始的日志信息。
6.根据权利要求5所述的方法,其特征在于,所述根据查找到的模板、以及所述待读取的日志信息中包含的与所述通配符对应匹配的内容字段,获取存储前原始的日志信息,包括:
根据查找到的模板、所述模板对应的排序规则、以及所述待读取的日志信息中包含的与所述通配符对应匹配的内容字段,获取存储前原始的日志信息。
7.一种日志存储装置,其特征在于,包括:
获取模块,用于获取待存储的日志文件的每条日志信息,所述日志信息中包含多个内容字段;
处理模块,用于将每条所述日志信息分别与日志模板库中的模板进行匹配,得到与所述日志信息对应的模板信息;所述日志模板库中包含多个模板,每个所述模板的尾部均为通配符;
存储模块,用于根据与每条所述日志信息匹配的模板信息和所述日志信息中与所述通配符对应匹配的内容字段存储所述日志信息;
所述处理模块,还用于获取用于构建模板的日志文件的内容字段,并统计各内容字段出现的次数;通过各内容字段出现的次数构建字典树,所述字典树中各节点的节点内容为各所述内容字段;将所述字典树中至少包含两个子节点的节点内容设置成通配符;
所述处理模块,具体用于根据所述内容字段出现的次数对每一条所述日志信息的内容字段进行排序,对于各内容字段为数字的,按照其在排列在所述日志信息中出现的先后顺序排列在非数字的内容字段之后,生成内容语句,并记录排序规则;根据所有所述内容语句中各内容字段的顺序构建一个字典树。
8.一种日志存储设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;
所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811562610.5A CN109684290B (zh) | 2018-12-20 | 2018-12-20 | 日志存储方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811562610.5A CN109684290B (zh) | 2018-12-20 | 2018-12-20 | 日志存储方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684290A CN109684290A (zh) | 2019-04-26 |
CN109684290B true CN109684290B (zh) | 2021-08-17 |
Family
ID=66188011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811562610.5A Active CN109684290B (zh) | 2018-12-20 | 2018-12-20 | 日志存储方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684290B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275861B (zh) * | 2019-06-25 | 2021-09-17 | 北京明略软件系统有限公司 | 数据存储方法及装置、存储介质、电子装置 |
CN110908967B (zh) * | 2019-11-13 | 2022-08-12 | 北京百度云途腾科技有限责任公司 | 用于存储日志的方法、装置、设备和计算机可读介质 |
CN111930586B (zh) * | 2020-06-17 | 2022-05-17 | 珠海格力电器股份有限公司 | 一种获取数据的方法、装置、设备及计算机可读介质 |
CN112463527A (zh) * | 2020-11-13 | 2021-03-09 | 完美世界控股集团有限公司 | 一种数据处理方法、装置、设备、系统及存储介质 |
CN112286896B (zh) * | 2020-11-19 | 2024-02-06 | 北京百家科技集团有限公司 | 一种日志文件处理方法、装置、计算机设备和存储介质 |
CN112800006B (zh) * | 2021-01-27 | 2023-05-26 | 杭州迪普科技股份有限公司 | 用于网络设备的日志存储方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020052A (zh) * | 2011-09-20 | 2013-04-03 | 北京百度网讯科技有限公司 | 一种识别搜索需求的方法和装置 |
CN103412924A (zh) * | 2013-08-12 | 2013-11-27 | 东软集团股份有限公司 | 日志多语言查询方法和系统 |
CN104331487A (zh) * | 2014-11-13 | 2015-02-04 | 携程计算机技术(上海)有限公司 | 日志的处理方法及装置 |
CN105975376A (zh) * | 2016-04-28 | 2016-09-28 | 广州市锲致智能技术有限公司 | 基于日志处理的数控系统安全处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10839308B2 (en) * | 2015-12-28 | 2020-11-17 | International Business Machines Corporation | Categorizing log records at run-time |
-
2018
- 2018-12-20 CN CN201811562610.5A patent/CN109684290B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020052A (zh) * | 2011-09-20 | 2013-04-03 | 北京百度网讯科技有限公司 | 一种识别搜索需求的方法和装置 |
CN103412924A (zh) * | 2013-08-12 | 2013-11-27 | 东软集团股份有限公司 | 日志多语言查询方法和系统 |
CN104331487A (zh) * | 2014-11-13 | 2015-02-04 | 携程计算机技术(上海)有限公司 | 日志的处理方法及装置 |
CN105975376A (zh) * | 2016-04-28 | 2016-09-28 | 广州市锲致智能技术有限公司 | 基于日志处理的数控系统安全处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109684290A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684290B (zh) | 日志存储方法、装置、设备及计算机可读存储介质 | |
CN109101620B (zh) | 相似度计算方法、聚类方法、装置、存储介质及电子设备 | |
CN110909160A (zh) | 正则表达式生成方法、服务器及计算机可读存储介质 | |
CN106897280B (zh) | 数据查询方法及装置 | |
CN112667860A (zh) | 一种子图匹配方法、装置、设备及存储介质 | |
CN111159329A (zh) | 敏感词检测方法、装置、终端设备和计算机可读存储介质 | |
CN110888981A (zh) | 基于标题的文档聚类方法、装置、终端设备及介质 | |
CN113986950A (zh) | 一种sql语句处理方法、装置、设备及存储介质 | |
CN112035449A (zh) | 数据处理方法及装置、计算机设备、存储介质 | |
CN112069305B (zh) | 数据筛选方法、装置及电子设备 | |
CN113742332A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN112527950A (zh) | 一种基于MapReduce的图数据删除方法及系统 | |
CN114860872A (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN112148872B (zh) | 自然对话主题分析方法、装置、电子设备和存储介质 | |
CN115455975A (zh) | 基于多模型融合决策提取主题关键词的方法及装置 | |
CN113821211A (zh) | 命令解析方法、装置、存储介质和计算机设备 | |
CN112241460A (zh) | 辅助推荐关键词的方法、装置、电子设备及存储介质 | |
CN111783472A (zh) | 一种判决书内容提取方法及相关装置 | |
CN113704465B (zh) | 文本聚类方法及装置、电子设备、存储介质 | |
CN111291230A (zh) | 特征处理方法、装置、电子设备及计算机可读存储介质 | |
CN117973402B (zh) | 文本转换的预处理方法和装置、存储介质及电子设备 | |
CN117828382B (zh) | 基于url的网络接口聚类方法及装置 | |
CN117725555B (zh) | 多源知识树的关联融合方法、装置、电子设备及存储介质 | |
CN113595557B (zh) | 一种数据处理的方法和装置 | |
CN108268446B (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 |