本发明涉及计算机,特别涉及一种基于elk自动分类的日志记录方法及系统。
背景技术:
1、elk是指elasticsearch、logstash和kibana。elasticsearch是个开源分布式搜索引擎,logstash主要是用来日志的搜集和过滤日志的工具,kibana用于为elasticsearch提供日志分析和搜索友好的web界面。行业内很多公司用elk作为调用链路日志系统。所谓的调用链路日志,就是将处理请求的方法调用栈给记录下来,同时记录每个方法的入参、出参和调用时间等。但调用链路日志一般都是海量日志,存储时需要很大的硬盘存储空间,当查询要跨越比较长的时间时,需要比较多内存。因此一般的链路日志存放不会存放太久的时间,一般是3至6个月。但是有些重要日志,我们希望能保留更长的时间。现在一般的作法是,由程序员在业务代码里直接记录重要日志。
2、但这样做会存在问题:很多时候程序员并不知道哪些日志是重要的;会加重程序员不必要的负担,因为记录日志这件事不属于业务范筹;只能记录程序员所标记的日志,不能记录调用链日志;所记录的日志不能和调用链路日志在同一索引下查询。如此,就会导致智能化程度低下。
技术实现思路
1、为了克服现有技术存在的缺陷,本发明的一个目的在于提供一种基于elk自动分类的日志记录方法,以解决上述的问题。
2、为了克服现有技术存在的缺陷,本发明的另一个目的在于提供一种基于elk自动分类的日志记录系统,以解决上述的问题。
3、本发明解决其技术问题所采用的技术方案是:一种基于elk自动分类的日志记录方法,包括:
4、s1:将目标表格标记为重要表格,将该目标表格要关注的操作标记为重要操作;
5、s2:配置中心周期性扫描elk的userlog-normal-*索引中dao层的日志,将对重要表格进行重要操作形成的日志标记为重要日志,将剩余的日志标记为普通日志。
6、值得说明的是,在所述步骤s1中,将重要表格和重要表格对应的重要操作录入到配置中心的日志管理模块的重要日志相关表中。
7、可选的,在所述步骤s2后还包括步骤s3;
8、所述步骤s3包括:配置中心提取重要日志中的入口方法名和入口工程名,并记录到重要日志入口表格中,其中,所述重要日志入口表格包括id字段、入口工程名字段和入口方法名字段,每个重要日志都对应一个唯一的id字段。
9、优选的,在所述步骤s3后还包括步骤s4;
10、所述步骤s4包括:在重要日志的日志上下文标记logindexlevel=important。
11、具体地,在所述步骤s4后还包括步骤s5;
12、所述步骤s5包括:在调用链日志记录器在记录日志时,先从日志上下文取logindexlevel的值,当logindexlevel的值为important时将该日志复制并输出到userlog-important-*的索引中,否则将该日志保留在userlog-normal-*的索引中。
13、值得说明的是,一种基于elk自动分类的日志记录系统,包括第一标记模块和扫描模块;
14、所述第一标记模块用于将目标表格标记为重要表格,将该目标表格要关注的操作标记为重要操作;
15、所述扫描模块用于通过配置中心周期性扫描elk的userlog-normal-*索引中dao层的日志,并将对重要表格进行重要操作形成的日志标记为重要日志,将剩余的日志标记为普通日志。
16、具体地,所述第一标记模块还用于将重要表格和重要表格对应的重要操作录入到配置中心的日志管理模块的重要日志相关表中。
17、优选的,还包括提取模块,所述提取模块用于通过配置中心提取重要日志中的入口方法名和入口工程名,并记录到重要日志入口表格中,其中,所述重要日志入口表格包括id字段、入口工程名字段和入口方法名字段,每个重要日志都对应一个唯一的id字段。
18、值得说明的是,还包括第二标记模块,所述第二标记模块用于在重要日志的日志上下文标记logindexlevel=important。
19、可选的,还包括输出模块,所述输出模块用于在调用链日志记录器在记录日志时,先从日志上下文取logindexlevel的值,当logindexlevel的值为important时将该日志复制并输出到userlog-important-*的索引中,否则将该日志保留在userlog-normal-*的索引中。
20、本发明的有益效果在于:在所述基于elk自动分类的日志记录方法中,通过在标记了重要表格的基础上,再对重要表格中要关注的操作标记出来,当配置中心扫描到重要表格产生了重要操作对应的日志后,就能把该重要日志筛选出来。如此,就能自动区分重要和一般的调用链路日志,从而不必程序员手动分类日志,并且可以在同一的索引下搜索日志,以及可精确定义到某表某操作来判断是否为重要调用链路日志,从而提高智能化程度。
1.一种基于elk自动分类的日志记录方法,其特征在于,包括:
2.根据权利要求1所述的一种基于elk自动分类的日志记录方法,其特征在于:在所述步骤s1中,将重要表格和重要表格对应的重要操作录入到配置中心的日志管理模块的重要日志相关表中。
3.根据权利要求2所述的一种基于elk自动分类的日志记录方法,其特征在于:在所述步骤s2后还包括步骤s3;
4.根据权利要求3所述的一种基于elk自动分类的日志记录方法,其特征在于:在所述步骤s3后还包括步骤s4;
5.根据权利要求4所述的一种基于elk自动分类的日志记录方法,其特征在于:在所述步骤s4后还包括步骤s5;
6.一种基于elk自动分类的日志记录系统,其特征在于:包括第一标记模块和扫描模块;
7.根据权利要求6所述的一种基于elk自动分类的日志记录系统,其特征在于:所述第一标记模块还用于将重要表格和重要表格对应的重要操作录入到配置中心的日志管理模块的重要日志相关表中。
8.根据权利要求7所述的一种基于elk自动分类的日志记录系统,其特征在于:还包括提取模块,所述提取模块用于通过配置中心提取重要日志中的入口方法名和入口工程名,并记录到重要日志入口表格中,其中,所述重要日志入口表格包括id字段、入口工程名字段和入口方法名字段,每个重要日志都对应一个唯一的id字段。
9.根据权利要求8所述的一种基于elk自动分类的日志记录系统,其特征在于:还包括第二标记模块,所述第二标记模块用于在重要日志的日志上下文标记logindexlevel=important。
10.根据权利要求9所述的一种基于elk自动分类的日志记录系统,其特征在于:还包括输出模块,所述输出模块用于在调用链日志记录器在记录日志时,先从日志上下文取logindexlevel的值,当logindexlevel的值为important时将该日志复制并输出到userlog-important-*的索引中,否则将该日志保留在userlog-normal-*的索引中。