掌桥专利:专业的专利平台
掌桥专利
首页

一种基于配置化最小粒度日志输出方法及装置

文献发布时间:2023-06-19 13:49:36



技术领域

本发明涉及信息技术领域,提供了一种基于批处理的重点监控技术,根据业务数据的最小粒度输入需要监控的数据日志信息,达到监控,统计的效果。项目影响范围小,代码的修改量不高,能很好的满足对项目中开发监控需求。

背景技术

随着业务的发展,复杂的业务逻辑在批量处理中难以做到监控,并且在账务系统项目中,批量代码和实时接口代码的区分不是很明确,很多地方代码都是复用的,一般为了不影响项目晚间批处理的性能,批量代码的日志打印部分设置的日志级别一般都是error,而当需要在生产的时候对监控的某一笔数据进行日志打印的时候很难实现,如100万条数据做批扣的话,会循环100万次,打印日志很多,想找到某笔借据的信息很麻烦。故此需要对老系统日志打印模块进行改造,原有的项目中引入新的技术,添加新的jar包时,势必会对原来系统带来不可控的影响。而本专利一种基于配置化最小粒度日志输出方法,在原有的系统中,原有的jar中新增配置,即可对原有的批量信息进行监控。

发明内容

本发明的目的在于解决批量代码的日志打印问题,且能够实现配置化最小粒度日志输出。

本发发明提过了一种基于配置化最小粒度日志输出方法,包括以下步骤:

步骤1:新增需要扫描的配置文件,配置需要打印日志的参数;

步骤2:在业务逻辑处理入口新增基础参数类,根据基础参数查询需要打印的日志;

步骤3、新增监控扫描工厂,监控扫描工厂根据配置文件生成动态监控类;

步骤4:动态监控类实现对业务逻辑处理入口的基础参数类进行基础参数注入,根注入的基础参数添加对批处理关键字段的日志打印;参数只是用来匹配的,在满足条件的写个打印A,在把A抽出来,就事日志,可以是自己定义的打印日志的工具,也可以是生产配置原有的打印日志的工具。

步骤5:前端展示输出日志打印内容;

上述技术方案中,步骤1包括以下步骤:

步骤1.1:首先要新增一个专属的配置文件,作为当前功能扫描的入口信息流,供后续的创建日志打印的监控扫描工厂解析文件里面参数信息,并创建对应的接口,用于在运行期动态代理实现对需要监控的批量程序的日志维护。

步骤1.2:配置文件采用的.properties文件,对.properties文件添加参数信息,属性名采用classandvalueO,classandvalue1,classandvalue2这种后缀递增的形式配置,属性值包含类拼接参数值、拼接标识;

如:“包名”.“类名”.“方法”¶m1&true,在java中同一个包下的类具有唯一性,类下面的方法唯一的特性,用包名加上类名加上方法名来定义一个绝对的文件路径信息,&作为连接符,param1作为满足条件的参数来打印日志,true或者false是用来判断当前日志是否需要销毁的标志。

上述技术方案中,步骤2包括以下步骤:

步骤2.1:在业务逻辑处理入口新增基础类comm,属性可以定义多个,value1,value2,value3,实现了set设置值和get获取值得方法,存储上述1.2中的param1值和true/false值,新增的基础类comm可用于后续参数的扩展、封装起来,当有多个参数的时候,用一个comm进行初始化接收,不需要写一长串的参数。

上述技术方案中,步骤3包括以下步骤:

步骤3.1针对上述1.2中的配置信息来定义通用的生成动态监控类,循环配置文件的参数信息,对参数列表中的包加上类的唯一特性,来创建不同的,并且唯一的实例,里面包含对业务逻辑处理入口的基础参数类comm进行基础参数注入的前置方法和销毁动态监控类实的后置方法;

步骤3.2:新增监控扫描工厂类,用于对根据配置文件中的参数信息生成动态监控类,监控扫描工厂类加载时会实时监控的.properties文件,当读取到配置文件的配置属性信息时,循环创建调用上述步骤2.2,生成唯一的动态监控类信息。

上述技术方案中,步骤4包括以下步骤:

步骤4.1:修改需要监控的业务逻辑处理入口,引入上述步骤2.1创建的基础参数类comm,用来动态监控类传入的参数信息,在查询结果、流程跳转的地方进行匹配输出日志:

如需要监控某笔借据的扣款流程日志信息,需要打印这笔借据的当时查询账户的金额,查询后对金额比较,根据结果信息进行流程跳转,配置借据号等于引入的comm类中的属性value1的值,这样就可以了解到这笔借据的日志轨迹信息,快速定位问题和解决问题。

步骤4.2:在上述步骤3.2创建动态监控类完成后,需要对动态监控类前置方法添加参数信息,用来匹配批量入口中的条件进行日志打印。对于动态监控类参数的配置方法,采用java中的反射特性,在程序运行时动态加载动态监控类并获取动态监控类的详细信息,从而操作动态监控类的设值方法来把步骤1.2配置文件传过来的参数赋值进去。

步骤4.3:日志输出部分,以一个约定的开头日志名称进行输出,代表这行日志信息时是监控类打印的,文件会存在于linux服务器上,才可以用linux命令进行文件值匹配,来抽取这些日志输出到新文件中。当只需要动态监控类执行一次的时候,根据上述步骤1.2的参数配置类中,最后一个属性为false的时候,销毁这个监控类就可以了。

5.根据权利要求4所述的一种基于配置化最小粒度日志输出方法,其特征在于,步骤4包括以下步骤:

本发明还提供了一种基于配置化最小粒度日志输出装置,包括以下模块:

配置文件模块:新增需要扫描的配置文件,配置需要打印日志的参数;

基础参数类模块:在业务逻辑处理入口新增基础参数类comm;

监控扫描工厂:新增监控扫描工厂,监控扫描工厂根据配置文件生成动态监控类;

日志打印模块:动态监控类实现对业务逻辑处理入口的基础参数类comm进行基础参数注入,根注入的基础参数添加对批处理关键字段的日志打印;

日志输出模块:前端展示输出日志打印内容;

上述技术方案中,配置文件模块:

新增一个的配置文件,作为当前功能扫描的入口信息流,供后续的创建日志打印的监控扫描工厂解析文件里面参数信息,并创建对应的接口,用于在运行期间动态代理实现对需要监控的批量程序的日志维护。

配置文件采用的.properties文件,对.properties文件添加参数信息,属性名采用classandvalue0,classandvalue1,classandvalue2这种后缀递增的形式配置,属性值包含类拼接参数值、拼接标识。

上述技术方案中,基础参数类模块:

在业务逻辑处理入口新增基础参数类comm,属性可以定义多个,value1,value2,value3,实现了set设置值和get获取值得方法,存储param1值和true/false值,新增的基础参数类comm可用于后续参数的扩展、封装起来,当有多个参数的时候,用一个comm进行初始化接收,不需要写一长串的参数。

上述技术方案中,监控扫描工厂:

针对配置信息来定义通用的生成动态监控类,循环配置文件的参数信息,对参数列表中的包加上类的唯一特性,来创建不同的,并且唯一的动态监控类实例,里面包含对业务逻辑处理入口的基础参数类comm进行基础参数注入的前置方法和销毁动态监控类实的后置方法;

新增监控扫描工厂类,用于对根据配置文件中的参数信息生成动态监控类,监控扫描工厂类加载时会实时监控的.properties文件,当读取到配置文件的配置属性信息时,循环生成唯一的动态监控类信息。

上述技术方案中,日志打印模块:

修改需要监控的业务逻辑处理入口,引入创建的基础参数类comm,用来动态监控类传入的参数信息,在查询结果、流程跳转的地方进行匹配输出日志:

在创建动态监控类完成后,需要对动态监控类前置方法添加参数信息,用来匹配批量入口中的条件进行日志打印,对于动态监控类参数的配置方法,采用java中的反射特性,在程序运行时动态加载动态监控类并获取动态监控类的详细信息,从而操作动态监控类的前置方法来把配置文件传过来的参数赋值进去;

日志输出部分,以一个约定的开头日志名称进行输出,代表这行日志信息时是监控类打印的,文件会存在于linux服务器上,才可以用linux命令进行文件值匹配,来抽取这些日志输出到新文件中,当只需要动态监控类执行一次的时候,根据配置文件中参数配置类中,最后一个属性为false的时候,销毁这个监控类。

因为本发明采用上述技术方案,因此具备以下有益效果:

本发明通过配置文件,配置需要打印日志的ID,如订单号,打印出的日志即是该订单的执行轨迹,打印最少的日志,监控最小粒度数据的执行轨迹,致力于问题的发现及解决,减少服务器压力,打印日志的同时也能兼顾服务器性能。

具体实施方式

本发明一种基于配置化最小粒度日志输出方法为解决上述技术问题,采用以下技术方案:

步骤1:新增需要扫描的配置文件;

步骤2:新增基础参数类,新增监控扫描工厂;

步骤3:修改批处理入口类,注入基础的参数类,添加对批处理关键字段的日志打印;

步骤4:前端展示输出内容;

上述技术方案一种基于配置化最小粒度日志输出方法中,上述步骤1具体包括以下步骤:

步骤1.1:首先我们要新增一个专属的配置文件,作为当前功能扫描的入口信息流,我们后续的创建日志打印的专属工厂(下述步骤2.2)会解析文件里面参数信息,并创建对应的接口类,用于在运行期动态代理实现对我们需要监控的批量程序的日志维护。

步骤1.2:配置文件我们采用的.properties文件,这种属性值一一对应的文本格式,在我们项目工程启动的时候会加载进来,我们只需要根据对应的属性名称即可获取属性值信息。现在我们需要添加参数信息,属性名采用classandvalue0,classandvalue1,classandvalue2这种后缀递增的形式配置,属性值包含类拼接参数值拼接是否标识。如com.demo.job.run¶m1&true,在java中同一个包下的类具有唯一性,类下面的方法唯一的特性,我们用com.demo包加上job类加上run方法来定义一个绝对的文件路径信息,&作为连接符(下述步骤2.2解析使用),param1(下述3.1)作为满足条件的参数来打印日志。true或者false是用来判断当前日志是否需要销毁的标志。

上述技术方案一种基于配置化最小粒度日志输出方法中,上述步骤2具体包括以下步骤:

步骤2.1:新增基础类comm,属性可以定义多个,value1,value2,value3,实现了set设置值和get获取值得方法,存储上述1.2中的param1值和true/false值,用于下述3.1中打印日志接口类的修改时引入的参数类信息,对我们约定的需要监控的关键字段进行匹配,以此来输出日志信息。我们在这新增的comm类可用于后续参数的扩展封装起来,当有多个参数的时候,可以用一个comm进行初始化接收,不需要写一长串的参数。

步骤2.2:针对1.2中的配置文件来定义一个通用的动态监控类,我们循环配置文件的参数信息,对参数列表中的包加上类的唯一特性,来创建不同的,并且唯一的类信息,里面包含前置方法、后置方法两个,在下述3.2中有明确的解释调用。

步骤2.3:新增监控扫描工厂类,用于对上述步骤中的参数信息进行动态监控类生成。

工厂类加载时会实时扫描监控的.properties文件,当读取到文件的配置属性信息时,循环创建调用上述步骤2.2,生成唯一的监控类信息。

上述技术方案一种基于配置化最小粒度日志输出方法中,上述步骤3具体包括以下步骤:

步骤3.1:修改业务逻辑处理入口,引入上述步骤2.1创建的comm的参数类,用来匹配我们的重点参数信息,在需要监控的地方进行匹配输出日志。如我们需要监控某笔借据的扣款流程日志信息,在关键的地方配置借据号等于我们引入的comm类中的属性值1,这样我们就可以了解到这笔借据的日志轨迹信息,快速定位问题和解决问题。

例如:现在有100万笔借据进行批扣,我要打印借据为a的日志信息。主入口就是批扣的这个类。监控工厂、监控类、监控参数的作用就是在执行扣款逻辑的时候把参数a传进去进行匹配。日志输出都是在批扣入口类里面。日志是批处理入口类生成的,采用参数a去匹配,然后把匹配到的数据,拿出来另存到指定位置。

其中业务逻辑处理入口即实现指定功能的批处理脚本,或者功能模块,如扣款等操作。

步骤3.2:在上述步骤2.2创建完成后,我们需要对动态监控类前置方法添加参数信息,用来匹配批量入口中的条件进行日志打印。对于参数的配置方法,我们采用的java中的反射特性,在程序运行时动态加载类并获取类的详细信息,从而操作类的设值方法来把步骤1.2配置文件传过来的参数赋值进去。

步骤3.3:日志输出部分,我们以一个特定开头进行输出,文件存在于1inux服务器上,我们可以才用linux命令进行文件值匹配,来抽取这些日志输出到新文件中。当我们需要当前业务类执行一次的时候,我们可以根据上述步骤1.2的参数配置类中,最后一个属性为false的时候,只需要销毁这个监控类就可以了。

上述技术方案一种基于配置化最小粒度日志输出方法中,上述步骤4具体包括以下步骤:

步骤4.1:对抽取的日志的文件,根据我们需要查看信息的方式进行加工展示。

技术分类

06120113822714