CN116302847B - 异常信息的动态采集方法、装置、计算机设备及介质 - Google Patents
异常信息的动态采集方法、装置、计算机设备及介质 Download PDFInfo
- Publication number
- CN116302847B CN116302847B CN202310565051.8A CN202310565051A CN116302847B CN 116302847 B CN116302847 B CN 116302847B CN 202310565051 A CN202310565051 A CN 202310565051A CN 116302847 B CN116302847 B CN 116302847B
- Authority
- CN
- China
- Prior art keywords
- class
- error
- information
- function
- exception
- 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
- 238000000034 method Methods 0.000 title claims abstract description 117
- 230000002159 abnormal effect Effects 0.000 title claims abstract description 50
- 238000011161 development Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 141
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 17
- 238000012423 maintenance Methods 0.000 abstract description 6
- 230000005856 abnormality Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种异常信息的动态采集方法、装置、计算机设备及介质,包括:通过创建用于错误异常采集的第一功能类,并为第一功能类实现CommandLineRunner接口,以使第一功能类在项目启动后被执行,在项目启动后,基于第一功能类进行错误异常信息采集,得到错误异常信息,并将错误异常信息保存至数据库,实现了在项目进程运行过程中进行动态异常采集,而无需终止项目进程,有利于提高项目开发维护效率。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种异常信息的动态采集方法、装置、计算机设备及介质。
背景技术
随着随着互联网技术的发展,各类基础技术迭代也在不断更新,***的业务功能也是频繁的变动,***出现的错误提示也是多变的。在进行业务功能频繁迭代的过程中,当开发维护过程中出现异常时,***需要给明确的错误提示,使用人员才能根据错误提示来更改自己的行为操作。
发明人在实现本发明的过程中发现,现有错误异常提示都是提前定义好的,而且在项目运行中是无法进行修改或修改不方便,这样会导致项目运行过程中因为错误提示不明确或文字不恰当而造成用户体验感不好,同时修改提前定义好的错误提示则需要停止项目进程再进行程序修改,从而造成不必要的风险和麻烦,使得开发维护效率变低。
发明内容
本发明实施例提供一种异常信息的动态采集方法、装置、计算机设备和存储介质,以提高项目开发维护效率。
为了解决上述技术问题,本申请实施例提供一种异常信息的动态采集方法,所述异常信息的动态采集方法包括:
创建第一功能类,并为所述第一功能类实现CommandLineRunner接口,以使所述第一功能类在项目启动后被执行,其中,所述第一功能类用于错误异常采集;
在项目启动后,基于所述第一功能类进行错误异常信息采集,得到错误异常信息;
将所述错误异常信息保存至数据库。
可选地,所述错误异常信息包括错误异常编码和错误异常描述信息,在所述将采集到的错误异常信息保存至数据库之后,所述异常信息的动态采集方法还包括:
通过错误异常统一拦截方法对每个所述错误异常编码进行数据查询,得到查询结果,所述查询结果为所述错误异常编码对应的错误异常描述信息;
将所述查询结果发送给开发端,以使开发端根据所述查询结果动态改动数据库中保存的错误异常编码。
可选地,所述在项目启动后,基于所述第一功能类进行错误异常信息采集,得到错误异常信息包括:
在项目启动后,执行所述CommandLineRunner接口中所述第一功能类对应的run方法;
所述第一功能类对应的run方法被执行时实现如下步骤:
获取指定路径下的全部类文件;
针对每个所述类文件,采用jvm对所述类文件执行加载、连接和初始化操作,并采用forName方法获取Class类,得到待识别Class类;
判断所述待识别Class类中是否存在第二功能类,其中,所述第二功能类用于自定义错误码收集注解;
若存在,则将存在所述第二功能类的待识别Class类作为目标Class类;
对所述目标Class类进行异常信息识别,得到所述错误异常信息。
可选地,所述对所述目标Class类进行异常信息识别,得到所述错误异常信息包括:
针对每个所述目标Class类,获取所述目标Class类的枚举对象数组,并循环读取所述枚举对象数组,得到枚举对象数据;
将所述枚举对象数据转换为第三功能类的实例,其中,所述第三功能类为扩展接口类,所述第三功能类包括用于获取错误码的方法函数和用于获取错误描述的方法函数;
针对每个所述第三功能类的实例,采用所述第三功能类中的方法获取错误异常编码和错误异常描述信息,并将所述错误异常编码和所述错误异常描述信息作为所述错误异常信息。
可选地,在所述将所述枚举对象数据转换为第三功能类的实例之前,所述异常信息的动态采集方法还包括:
将所述第二功能类标记在实现所述第三功能类的枚举类上;
创建第四功能类和第五功能类,其中,所述第四功能类为错误异常类,所述第五功能类为全局错误异常***类,所述第四功能类继承RuntimeException类,并通过方法重载的方式实现参数为第三功能类的构造方法;
在所述第五功能类中,采用Exception方法作为第四功能类的拦截方法,并在Exception方法上,采用@RestControllerAdvice注解对拦截到的第四功能类中的错误异常进行注解。
为了解决上述技术问题,本申请实施例还提供一种异常信息的动态采集装置,包括:
第一创建模块,用于创建第一功能类,并为所述第一功能类实现CommandLineRunner接口,以使所述第一功能类在项目启动后被执行,其中,所述第一功能类用于错误异常采集;
异常收集模块,用于在项目启动后,基于所述第一功能类进行错误异常信息采集,得到错误异常信息;
信息保存模块,用于将所述错误异常信息保存至数据库。
可选地,所述错误异常信息包括错误异常编码和错误异常描述信息,所述异常信息的动态采集装置还包括:
异常定位模块,用于通过错误异常统一拦截方法对每个所述错误异常编码进行数据查询,得到查询结果,所述查询结果为所述错误异常编码对应的错误异常描述信息;
异常修改模块,用于将所述查询结果发送给开发端,以使开发端根据所述查询结果动态改动数据库中保存的错误异常编码。
可选地,所述异常收集模块包括:
执行子模块,用于在项目启动后,执行所述CommandLineRunner接口中所述第一功能类对应的run方法;
获取子模块,用于获取指定路径下的全部类文件;
加载子模块,用于针对每个所述类文件,采用jvm对所述类文件执行加载、连接和初始化操作,并采用forName方法获取Class类,得到待识别Class类;
判断子模块,用于判断所述待识别Class类中是否存在第二功能类,其中,所述第二功能类用于自定义错误码收集注解;
确定子模块,用于若存在,则将存在所述第二功能类的待识别Class类作为目标Class类;
识别子模块,用于对所述目标Class类进行异常信息识别,得到所述错误异常信息。
可选地,所述识别子模块包括:
对象数据获取单元,用于针对每个所述目标Class类,获取所述目标Class类的枚举对象数组,并循环读取所述枚举对象数组,得到枚举对象数据;
对象数据转化单元,用于将所述枚举对象数据转换为第三功能类的实例,其中,所述第三功能类为扩展接口类,所述第三功能类包括用于获取错误码的方法函数和用于获取错误描述的方法函数;
异常信息获取单元,用于针对每个所述第三功能类的实例,采用所述第三功能类中的方法获取错误异常编码和错误异常描述信息,并将所述错误异常编码和所述错误异常描述信息作为所述错误异常信息。
可选地,所述异常信息的动态采集装置还包括:
标记模块,用于将所述第二功能类标记在实现所述第三功能类的枚举类上;
第二创建模块,用于创建第四功能类和第五功能类,其中,所述第四功能类为错误异常类,所述第五功能类为全局错误异常***类,所述第四功能类继承RuntimeException类,并通过方法重载的方式实现参数为第三功能类的构造方法;
拦截注解模块,用于在所述第五功能类中,采用Exception方法作为第四功能类的拦截方法,并在Exception方法上,采用@RestControllerAdvice注解对拦截到的第四功能类中的错误异常进行注解。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述异常信息的动态采集方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述异常信息的动态采集方法的步骤。
本发明实施例提供的异常信息的动态采集方法、装置、计算机设备及存储介质,通过通过创建用于错误异常采集的第一功能类,并为第一功能类实现CommandLineRunner接口,以使第一功能类在项目启动后被执行,在项目启动后,基于第一功能类进行错误异常信息采集,得到错误异常信息,并将错误异常信息保存至数据库,实现了在项目进程运行过程中进行动态异常采集,而无需终止项目进程,有利于提高维护效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性***架构图;
图2是本申请的异常信息的动态采集方法的一个实施例的流程图;
图3是根据本申请的异常信息的动态采集装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器( Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3 )、MP4( Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4 )播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的异常信息的动态采集方法由服务器执行,相应地,异常信息的动态采集装置设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器,本申请实施例中的终端设备101、102、103具体可以对应的是实际生产中的应用***。
请参阅图2,图2示出本发明实施例提供的一种异常信息的动态采集方法,以该方法应用在图1中的服务端为例进行说明,详述如下:
S201:创建第一功能类,并为第一功能类实现CommandLineRunner接口,以使第一功能类在项目启动后被执行,其中,第一功能类用于错误异常采集。
其中,CommandLineRunner是一个接口,在使用SpringBoot构建项目时,通常有一些预先数据的加载,通过实现该接口可以让需要加载的方法函数在项目启动后立即执行动作,如果存在多个加载的数据,也可以使用@Order注解来排序。
其中,第一功能类用于错误异常采集。
具体来说,本实施例为第一功能类实现CommandLineRunner接口,即在SpringBoot应用程序在启动后,会遍历CommandLineRunner接口的实例并运行它们的run方法,实现启动后就开始执行用于错误异常采集的第一功能类。
S202:在项目启动后,基于第一功能类进行错误异常信息采集,得到错误异常信息;
在一具体可选实施方式中,在项目启动后,基于第一功能类进行错误异常信息采集,得到错误异常信息包括:
在项目启动后,执行CommandLineRunner接口中第一功能类对应的run方法;
第一功能类对应的run方法被执行时实现如下步骤:
获取指定路径下的全部类文件;
针对每个类文件,采用jvm对类文件执行加载、连接和初始化操作,并采用forName方法获取Class类,得到待识别Class类;
判断待识别Class类中是否存在第二功能类,其中,第二功能类用于自定义错误码收集注解;
若存在,则将存在第二功能类的待识别Class类作为目标Class类;
对目标Class类进行异常信息识别,得到错误异常信息。
本实施例采用ResourcePatternResolver接口获取指定路径下的全部类文件,具体地,通过ResourcePatternResolver接口的getResources方法获取指定路径下的全部类文件,指定路径具体可以是正在执行的项目文件所在的路径,获取到项目文件对应的类文件之后,通过对将类文件加载到jvm中,并用forName方法获取jvm中中的Class类,得到待识别Class类,在判断待识别Class类中是否存在用于自定义错误码收集注解的第二功能类,若存在,则将存在第二功能类的待识别Class类作为目标Class类,并对目标Class类进行异常信息识别,得到错误异常信息,应理解,在不存在时,将继续执行不作任何处理。
其中,ResourcePatternResolver接口用于解析带有*等通配符路径的项目文件(资源文件),是ResourceLoader接口的拓展接口。
需要说明的是,jvm规定了几种必须对类执行初始化的场景,forName就是其中一种,它会让jvm对指定的类执行加载、连接、初始化操作,具体动作包括:jvm会查找指定路径类的class文件,然后将class文件读入内存,为该类生成一个class对象作为访问类型信息的入口(类型信息是该类的class文件转换成的数据结构,存储在方法区,class对象就是用于访问这个数据结构的,可以通过getClass()方法获取class对象,class对象提供的反射功能其实就是基于该数据结构实现的)。
在一具体可选实施方式中,对目标Class类进行异常信息识别,得到错误异常信息包括:
针对每个目标Class类,获取目标Class类的枚举对象数组,并循环读取枚举对象数组,得到枚举对象数据;
将枚举对象数据转换为第三功能类的实例,其中,第三功能类为扩展接口类,第三功能类包括用于获取错误码的方法函数和用于获取错误描述的方法函数;
针对每个第三功能类的实例,采用第三功能类中的方法获取错误异常编码和错误异常描述信息,并将错误异常编码和错误异常描述信息作为错误异常信息。
在一具体可选实施方式中,在将枚举对象数据转换为第三功能类的实例之前,该异常信息的动态采集方法还包括:
将第二功能类标记在实现第三功能类的枚举类上;
创建第四功能类和第五功能类,其中,第四功能类为错误异常类,第五功能类为全局错误异常***类,第四功能类继承RuntimeException类,并通过方法重载的方式实现参数为第三功能类的构造方法;
在第五功能类中,采用Exception方法作为第四功能类的拦截方法,并在Exception方法上,采用@RestControllerAdvice注解对拦截到的第四功能类中的错误异常进行注解。
其中,在一具体实施方式中,第二功能类标记在实现第三功能类的枚举类上示例如下:
@【B】(模块名称="xxx")
public enum demo implements 【A】 {
}
其中,【B】为第二功能类,【A】为第三功能类。
其中,在一具体实施方式中,第四功能类继承RuntimeException类(运行时异常),并通过方法重载的方式实现参数为第三功能类的构造方法的具体示例如下:
public class 【C】 extends RuntimeException{
public 【C】(【A】 A) {
}
}
其中,【C】为第四功能类,【A】为第三功能类。
其中,Exception类代表了标准Java库方法所激发的异常。运行异常类RuntimeException用于捕获Java程序在运行时产生的由解释器引发的各种异常,但Java语言中的运行异常不一定被捕获。
RestControllerAdvice和ExceptionHandler这两个注解的组合,被用作项目的全局异常处理,一旦项目中发生了异常,就会进入使用了RestControllerAdvice注解类中使用了ExceptionHandler注解的方法,可以在这里处理全局异常,将异常信息输出到指定的位置。
在本实施例的另一实施方式中,Exception()方法实现如下:
步骤1、获取第四功能类的数据信息;
步骤2、通过第四功能类的code字段数据进行数据库查询具体错误异常描述信息;
步骤3、判断查询出来的错误异常描述信息是否为空,为空则使用原始异常描述信息,不为空则使用查询出来的异常描述信息;
步骤4、返回异常结果值。
S203:将错误异常信息保存至数据库。
在一具体可选实施方式中,错误异常信息包括错误异常编码和错误异常描述信息,步骤S203之后,也即,在将采集到的错误异常信息保存至数据库之后,异常信息的动态采集方法还包括:
通过错误异常统一拦截方法对每个错误异常编码进行数据查询,得到查询结果,查询结果为错误异常编码对应的错误异常描述信息;
将查询结果发送给开发端,以使开发端根据查询结果动态改动数据库中保存的错误异常编码。
本实施例中,通过创建用于错误异常采集的第一功能类,并为第一功能类实现CommandLineRunner接口,以使第一功能类在项目启动后被执行,在项目启动后,基于第一功能类进行错误异常信息采集,得到错误异常信息,并将错误异常信息保存至数据库,实现了在项目进程运行过程中进行动态异常采集,而无需终止项目进程,有利于提高维护效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图3示出与上述实施例异常信息的动态采集方法一一对应的异常信息的动态采集装置的原理框图。如图3所示,该异常信息的动态采集装置包括第一创建模块31、异常收集模块32和信息保存模块33。各功能模块详细说明如下:
第一创建模块31,用于创建第一功能类,并为第一功能类实现CommandLineRunner接口,以使第一功能类在项目启动后被执行,其中,第一功能类用于错误异常采集;
异常收集模块32,用于在项目启动后,基于第一功能类进行错误异常信息采集,得到错误异常信息;
信息保存模块33,用于将错误异常信息保存至数据库。
可选地,错误异常信息包括错误异常编码和错误异常描述信息,异常信息的动态采集装置还包括:
异常定位模块,用于通过错误异常统一拦截方法对每个错误异常编码进行数据查询,得到查询结果,查询结果为错误异常编码对应的错误异常描述信息;
异常修改模块,用于将查询结果发送给开发端,以使开发端根据查询结果动态改动数据库中保存的错误异常编码。
可选地,异常收集模块32包括:
执行子模块,用于在项目启动后,执行CommandLineRunner接口中第一功能类对应的run方法;
获取子模块,用于获取指定路径下的全部类文件;
加载子模块,用于针对每个类文件,采用jvm对类文件执行加载、连接和初始化操作,并采用forName方法获取Class类,得到待识别Class类;
判断子模块,用于判断待识别Class类中是否存在第二功能类,其中,第二功能类用于自定义错误码收集注解;
确定子模块,用于若存在,则将存在第二功能类的待识别Class类作为目标Class类;
识别子模块,用于对目标Class类进行异常信息识别,得到错误异常信息。
可选地,识别子模块包括:
对象数据获取单元,用于针对每个目标Class类,获取目标Class类的枚举对象数组,并循环读取枚举对象数组,得到枚举对象数据;
对象数据转化单元,用于将枚举对象数据转换为第三功能类的实例,其中,第三功能类为扩展接口类,第三功能类包括用于获取错误码的方法函数和用于获取错误描述的方法函数;
异常信息获取单元,用于针对每个第三功能类的实例,采用第三功能类中的方法获取错误异常编码和错误异常描述信息,并将错误异常编码和错误异常描述信息作为错误异常信息。
可选地,异常信息的动态采集装置还包括:
标记模块,用于将第二功能类标记在实现第三功能类的枚举类上;
第二创建模块,用于创建第四功能类和第五功能类,其中,第四功能类为错误异常类,第五功能类为全局错误异常***类,第四功能类继承RuntimeException类,并通过方法重载的方式实现参数为第三功能类的构造方法;
拦截注解模块,用于在第五功能类中,采用Exception方法作为第四功能类的拦截方法,并在Exception方法上,采用@RestControllerAdvice注解对拦截到的第四功能类中的错误异常进行注解。
关于异常信息的动态采集装置的具体限定可以参见上文中对于异常信息的动态采集方法的限定,在此不再赘述。上述异常信息的动态采集装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过***总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件连接存储器41、处理器42、网络接口43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器 (Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或D界面显示存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作***和各类应用软件,例如异常信息的动态采集的程序代码等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的程序代码或者处理数据,例如运行异常信息的动态采集的程序代码。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有界面显示程序,所述界面显示程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的异常信息的动态采集方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (8)
1.一种异常信息的动态采集方法,其特征在于,所述异常信息的动态采集方法包括:
创建第一功能类,并为所述第一功能类实现CommandLineRunner接口,以使所述第一功能类在项目启动后被执行,其中,所述第一功能类用于错误异常采集;
在项目启动后,基于所述第一功能类进行错误异常信息采集,得到错误异常信息;
将所述错误异常信息保存至数据库;
其中,所述在项目启动后,基于所述第一功能类进行错误异常信息采集,得到错误异常信息包括:
在项目启动后,执行所述CommandLineRunner接口中所述第一功能类对应的run方法;
所述第一功能类对应的run方法被执行时实现如下步骤:
获取指定路径下的全部类文件;
针对每个所述类文件,采用jvm对所述类文件执行加载、连接和初始化操作,并采用forName方法获取Class类,得到待识别Class类;
判断所述待识别Class类中是否存在第二功能类,其中,所述第二功能类用于自定义错误码收集注解;
若存在,则将存在所述第二功能类的待识别Class类作为目标Class类;
对所述目标Class类进行异常信息识别,得到所述错误异常信息。
2.如权利要求1所述的异常信息的动态采集方法,其特征在于,所述错误异常信息包括错误异常编码和错误异常描述信息,在所述将采集到的错误异常信息保存至数据库之后,所述异常信息的动态采集方法还包括:
通过错误异常统一拦截方法对每个所述错误异常编码进行数据查询,得到查询结果,所述查询结果为所述错误异常编码对应的错误异常描述信息;
将所述查询结果发送给开发端,以使开发端根据所述查询结果动态改动数据库中保存的错误异常编码。
3.如权利要求1所述的异常信息的动态采集方法,其特征在于,所述对所述目标Class类进行异常信息识别,得到所述错误异常信息包括:
针对每个所述目标Class类,获取所述目标Class类的枚举对象数组,并循环读取所述枚举对象数组,得到枚举对象数据;
将所述枚举对象数据转换为第三功能类的实例,其中,所述第三功能类为扩展接口类,所述第三功能类包括用于获取错误码的方法函数和用于获取错误描述的方法函数;
针对每个所述第三功能类的实例,采用所述第三功能类中的方法获取错误异常编码和错误异常描述信息,并将所述错误异常编码和所述错误异常描述信息作为所述错误异常信息。
4.如权利要求3所述的异常信息的动态采集方法,其特征在于,在所述将所述枚举对象数据转换为第三功能类的实例之前,所述异常信息的动态采集方法还包括:
将所述第二功能类标记在实现所述第三功能类的枚举类上;
创建第四功能类和第五功能类,其中,所述第四功能类为错误异常类,所述第五功能类为全局错误异常***类,所述第四功能类继承RuntimeException类,并通过方法重载的方式实现参数为第三功能类的构造方法;
在所述第五功能类中,采用Exception方法作为第四功能类的拦截方法,并在Exception方法上,采用@RestControllerAdvice注解对拦截到的第四功能类中的错误异常进行注解。
5.一种异常信息的动态采集装置,其特征在于,所述异常信息的动态采集装置包括:
第一创建模块,用于创建第一功能类,并为所述第一功能类实现CommandLineRunner接口,以使所述第一功能类在项目启动后被执行,其中,所述第一功能类用于错误异常采集;
异常收集模块,用于在项目启动后,基于所述第一功能类进行错误异常信息采集,得到错误异常信息;
信息保存模块,用于将所述错误异常信息保存至数据库;
其中,所述异常收集模块包括:
执行子模块,用于在项目启动后,执行所述CommandLineRunner接口中所述第一功能类对应的run方法;
获取子模块,用于获取指定路径下的全部类文件;
加载子模块,用于针对每个所述类文件,采用jvm对所述类文件执行加载、连接和初始化操作,并采用forName方法获取Class类,得到待识别Class类;
判断子模块,用于判断所述待识别Class类中是否存在第二功能类,其中,所述第二功能类用于自定义错误码收集注解;
确定子模块,用于若存在,则将存在所述第二功能类的待识别Class类作为目标Class类;
识别子模块,用于对所述目标Class类进行异常信息识别,得到所述错误异常信息。
6.如权利要求5所述的异常信息的动态采集装置,其特征在于,所述识别子模块包括:
对象数据获取单元,用于针对每个所述目标Class类,获取所述目标Class类的枚举对象数组,并循环读取所述枚举对象数组,得到枚举对象数据;
对象数据转化单元,用于将所述枚举对象数据转换为第三功能类的实例,其中,所述第三功能类为扩展接口类,所述第三功能类包括用于获取错误码的方法函数和用于获取错误描述的方法函数;
异常信息获取单元,用于针对每个所述第三功能类的实例,采用所述第三功能类中的方法获取错误异常编码和错误异常描述信息,并将所述错误异常编码和所述错误异常描述信息作为所述错误异常信息。
7.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述的异常信息的动态采集方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的异常信息的动态采集方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310565051.8A CN116302847B (zh) | 2023-05-19 | 2023-05-19 | 异常信息的动态采集方法、装置、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310565051.8A CN116302847B (zh) | 2023-05-19 | 2023-05-19 | 异常信息的动态采集方法、装置、计算机设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116302847A CN116302847A (zh) | 2023-06-23 |
CN116302847B true CN116302847B (zh) | 2023-08-04 |
Family
ID=86801724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310565051.8A Active CN116302847B (zh) | 2023-05-19 | 2023-05-19 | 异常信息的动态采集方法、装置、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302847B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970056426A (ko) * | 1995-12-23 | 1997-07-31 | 양승택 | 패킷 임의 사용자 기능 구현 방법 |
CN109474601A (zh) * | 2018-11-26 | 2019-03-15 | 杭州安恒信息技术股份有限公司 | 一种基于行为识别的扫描类攻击处置方法 |
CN112416385A (zh) * | 2020-08-13 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 采集组件管理方法和*** |
CN114237960A (zh) * | 2021-12-20 | 2022-03-25 | 深圳腾银信息咨询有限责任公司 | 一种异常信息的提示方法、装置、电子设备及存储介质 |
CN114490324A (zh) * | 2021-12-22 | 2022-05-13 | 山东浪潮工业互联网产业股份有限公司 | 一种基于Gateway网关的全局异常处理方法及设备 |
CN114721711A (zh) * | 2022-05-19 | 2022-07-08 | 奇秦科技(北京)股份有限公司 | 基于GraphQL减免软件研发配置的工具和方法 |
WO2022267179A1 (zh) * | 2021-06-21 | 2022-12-29 | 深圳壹账通智能科技有限公司 | 动态限流熔断配置方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644403B2 (en) * | 2005-09-12 | 2010-01-05 | Oracle International Corporation | Method and system for automated root-cause analysis for class loading failures in java |
US20220210034A1 (en) * | 2020-12-31 | 2022-06-30 | Centurylink Intellectual Property Llc | Systems and methods for edge site selection and metrics capture |
-
2023
- 2023-05-19 CN CN202310565051.8A patent/CN116302847B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970056426A (ko) * | 1995-12-23 | 1997-07-31 | 양승택 | 패킷 임의 사용자 기능 구현 방법 |
CN109474601A (zh) * | 2018-11-26 | 2019-03-15 | 杭州安恒信息技术股份有限公司 | 一种基于行为识别的扫描类攻击处置方法 |
CN112416385A (zh) * | 2020-08-13 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 采集组件管理方法和*** |
WO2022267179A1 (zh) * | 2021-06-21 | 2022-12-29 | 深圳壹账通智能科技有限公司 | 动态限流熔断配置方法、装置、设备及存储介质 |
CN114237960A (zh) * | 2021-12-20 | 2022-03-25 | 深圳腾银信息咨询有限责任公司 | 一种异常信息的提示方法、装置、电子设备及存储介质 |
CN114490324A (zh) * | 2021-12-22 | 2022-05-13 | 山东浪潮工业互联网产业股份有限公司 | 一种基于Gateway网关的全局异常处理方法及设备 |
CN114721711A (zh) * | 2022-05-19 | 2022-07-08 | 奇秦科技(北京)股份有限公司 | 基于GraphQL减免软件研发配置的工具和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116302847A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427705B (zh) | 电子装置、分布式***日志查询方法及存储介质 | |
CN112416458A (zh) | 基于ReactNative的预加载方法、装置、计算机设备及存储介质 | |
CN112181835A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN114564294A (zh) | 智能服务编排方法、装置、计算机设备及存储介质 | |
CN115794437A (zh) | 微服务的调用方法、装置、计算机设备及存储介质 | |
CN111813418A (zh) | 分布式链路跟踪方法、装置、计算机设备及存储介质 | |
CN112860662A (zh) | 数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN116302847B (zh) | 异常信息的动态采集方法、装置、计算机设备及介质 | |
CN111488286A (zh) | 一种Android模块独立开发的方法及装置 | |
CN111475468A (zh) | 新增***的日志接入方法、装置、设备及存储介质 | |
CN113656044B (zh) | 安卓安装包压缩方法、装置、计算机设备及存储介质 | |
CN114637672A (zh) | 自动化数据测试方法、装置、计算机设备及存储介质 | |
CN114968822A (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN115328764A (zh) | 基于自动化测试的测试代码优化方法及其相关设备 | |
CN117033249B (zh) | 一种测试用例生成方法、装置、计算机设备及存储介质 | |
CN112965721B (zh) | 基于Android的项目编译方法、装置、计算机设备及存储介质 | |
CN114595106B (zh) | 一种业务控制设备调测方法及装置 | |
CN117591190A (zh) | 一种应用数据加载优化方法、装置、设备及其存储介质 | |
CN117033249A (zh) | 一种测试用例生成方法、装置、计算机设备及存储介质 | |
CN114995858A (zh) | 升级包兼容性的检测方法与*** | |
CN117290019A (zh) | 一种接口调用方法、装置、计算机设备和存储介质 | |
CN114528220A (zh) | 测试案例的生成方法、装置、计算机设备及存储介质 | |
CN116166270A (zh) | 一种xaml文件修正方法、装置、计算机设备及存储介质 | |
CN117579457A (zh) | 一种业务逻辑隔离方法、装置、计算机设备及存储介质 | |
CN117499270A (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 | ||
CP03 | Change of name, title or address |
Address after: No. 205, Building B1, Huigu Science and Technology Industrial Park, No. 336 Bachelor Road, Bachelor Street, Yuelu District, Changsha City, Hunan Province, 410000 Patentee after: Wisdom Eye Technology Co.,Ltd. Country or region after: China Address before: 410000 building 14, phase I, Changsha Zhongdian Software Park, No. 39, Jianshan Road, high tech Development Zone, Changsha City, Hunan Province Patentee before: Wisdom Eye Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |