一种基于拦截的接口日志打印的方法及装置与流程

专利2022-06-29  58


本发明涉及接口日志技术领域,特别涉及一种基于拦截的接口日志打印的方法及装置。



背景技术:

在系统实际的运行中,某些接口日志的打印会被遗漏掉。而现有技术中,需要重新发布相关的代码,既需要重新部署系统来弥补被漏掉的接口日志。之后,重新打印一遍所有的接口日志。但是,某些接口日志的数据量是非常巨大的,重新打印一遍,不仅仅造成了数据冗余,还占据大量额外的存储空间。更有一些接口日志,具备一定的敏感信息,重新打印一遍,增加了敏感信息被泄露的可能性。除此之外,重新部署系统需要一定的时间来完成,导致无法及时的做出响应。如何妥善的解决上述问题,就成为了业界亟待解决的课题。



技术实现要素:

本发明提供一种基于拦截的接口日志打印的方法及装置,用以解决遗漏打印的接口日志,无需重新部署系统,即可自动直接形成包含该接口日志的待打印接口列表,不仅节省了人工手操方式的人工成本,还通过缓存技术使其具备了较高的可靠的性能和效率。

根据本发明实施例的第一方面,提供一种基于拦截的接口日志打印的方法,包括:

拦截用户发出的接口日志打印请求;

配置待打印接口列表;

将所述待打印接口列表写入系统缓存中;

将系统缓存中的待打印接口列表进行打印。

在一个实施例中,所述拦截用户发出的接口日志打印请求,包括:

当用户发出的接口日志打印请求从前端到达后端时,调用spring拦截;

通过spring拦截用户发出的接口日志打印请求;

获取所述接口日志打印请求中的接口名。

在一个实施例中,所述配置待打印接口列表,包括:

确定用户发出的接口日志打印请求中的接口名;

将所述接口日志打印请求中的接口名存储到mysql中的待打印接口列表中。

在一个实施例中,所述将所述待打印接口列表写入系统缓存中,包括:

每间隔预设的等待周期,将所述mysql中的待打印接口列表发送到redis缓存中;

将所述redis缓存中待打印接口列表实时的写入到系统缓存中。

在一个实施例中,还包括:

若系统缓存中的待打印接口列表中不存在接口名,设置系统缓存和redis缓存的清除时限;

在达到所述清除时限之前,仍未检测到系统缓存中存在接口名,释放系统缓存和redis缓存。

根据本发明实施例的第二方面,提供一种基于拦截的接口日志打印的装置,包括:

拦截模块,用于拦截用户发出的接口日志打印请求;

配置模块,用于配置待打印接口列表;

写入模块,用于将所述待打印接口列表写入系统缓存中;

打印模块,用于将系统缓存中的待打印接口列表进行打印。

在一个实施例中,所述拦截模块,包括:

调用子模块,用于当用户发出的接口日志打印请求从前端到达后端时,调用spring拦截;

拦截子模块,用于通过spring拦截用户发出的接口日志打印请求;

获取子模块,用于获取所述接口日志打印请求中的接口名。

在一个实施例中,所述配置模块,包括:

确定子模块,用于确定用户发出的接口日志打印请求中的接口名;

存储子模块,用于将所述接口日志打印请求中的接口名存储到mysql中的待打印接口列表中。

在一个实施例中,所述写入模块,包括:

发送子模块,用于每间隔预设的等待周期,将所述mysql中的待打印接口列表发送到redis缓存中;

写写入子模块,用于将所述redis缓存中待打印接口列表实时的写入到系统缓存中。

在一个实施例中,还包括:

设置模块,用于若系统缓存中的待打印接口列表中不存在接口名,设置系统缓存和redis缓存的清除时限;

释放模块,用于在达到所述清除时限之前,仍未检测到系统缓存中存在接口名,释放系统缓存和redis缓存。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明一示例性实施例示出的一种基于拦截的接口日志打印的方法的流程图;

图2为本发明一示例性实施例示出的一种基于拦截的接口日志打印的方法的步骤s11的流程图;

图3为本发明一示例性实施例示出的一种基于拦截的接口日志打印的方法的步骤s12的流程图;

图4为本发明一示例性实施例示出的一种基于拦截的接口日志打印的方法的步骤s13的流程图;

图5为本发明一示例性实施例示出的一种基于拦截的接口日志打印的方法的流程图;

图6为本发明一示例性实施例示出的一种基于拦截的接口日志打印的装置的框图;

图7为本发明一示例性实施例示出的一种基于拦截的接口日志打印的装置的拦截模块61的框图;

图8为本发明一示例性实施例示出的一种基于拦截的接口日志打印的装置的配置模块62的框图;

图9为本发明一示例性实施例示出的一种基于拦截的接口日志打印的装置的写入模块63的框图;

图10为本发明一示例性实施例示出的一种基于拦截的接口日志打印的装置的框图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是根据一示例性实施例示出的一种基于拦截的接口日志打印的方法流程图,如图1所示,该基于拦截的接口日志打印的方法,包括以下步骤s11-s14:

在步骤s11中,拦截用户发出的接口日志打印请求;

在步骤s12中,配置待打印接口列表;

在步骤s13中,将所述待打印接口列表写入系统缓存中;

在步骤s14中,将系统缓存中的待打印接口列表进行打印。

在一个实施例中,在系统实际的运行中,某些接口日志的打印会被遗漏掉。而现有技术中,需要重新发布相关的代码,既需要重新部署系统来弥补被漏掉的接口日志。之后,重新打印一遍所有的接口日志。但是,某些接口日志的数据量是非常巨大的,重新打印一遍,不仅仅造成了数据冗余,还占据大量额外的存储空间。更有一些接口日志,具备一定的敏感信息,重新打印一遍,增加了敏感信息被泄露的可能性。除此之外,重新部署系统需要一定的时间来完成,导致无法及时的做出响应。本实施例中的技术方案可妥善的解决上述问题。

拦截用户发出的接口日志打印请求。其中,当用户发出的接口日志打印请求从前端到达后端时,调用spring拦截;通过spring拦截用户发出的接口日志打印请求;获取所述接口日志打印请求中的接口名。

配置待打印接口列表。其中,确定用户发出的接口日志打印请求中的接口名;将所述接口日志打印请求中的接口名存储到mysql中的待打印接口列表中。

将所述待打印接口列表写入系统缓存中。其中,每间隔预设的等待周期,将所述mysql中的待打印接口列表发送到redis缓存中;

将所述redis缓存中待打印接口列表实时的写入到系统缓存中。

将系统缓存中的待打印接口列表进行打印。

还有,若系统缓存中的待打印接口列表中不存在接口名,设置系统缓存和redis缓存的清除时限;在达到所述清除时限之前,仍未检测到系统缓存中存在接口名,释放系统缓存和redis缓存。

使用本实施例中的技术方案可对于遗漏打印的接口日志,无需重新部署系统,即可自动直接形成包含该接口日志的待打印接口列表,不仅节省了人工手操方式的人工成本,还通过缓存技术使其具备了较高的可靠的性能和效率。

在一个实施例中,如图2所示,步骤s11包括如下步骤s21-s23:

在步骤s21中,当用户发出的接口日志打印请求从前端到达后端时,调用spring拦截;

在步骤s22中,通过spring拦截用户发出的接口日志打印请求;

在步骤s23中,获取所述接口日志打印请求中的接口名。

在一个实施例中,调用spring框架中的拦截器可实现对接口日志打印请求的拦截功能,在定义好的时机执行相应的代码,在本实施例中,该时机为当用户发出的接口日志打印请求从前端到达后端时。而确定接口日志的第一步为确定接口名,可直接定位接口,便于后续对该接口的日志的调取。

在一个实施例中,如图3所示,步骤s12包括如下步骤s31-s32:

在步骤s31中,确定用户发出的接口日志打印请求中的接口名;

在步骤s32中,将所述接口日志打印请求中的接口名存储到mysql中的待打印接口列表中。

在一个实施例中,待打印接口列表中可包括多个接口。系统在获取到待打印接口列表后,分析出其中包括的接口以及相关的属性,从而确定出答应那个接口在什么时间段或者针对某个任务的日志记录。还可以限定打印的日志记录所涵盖的范围。

在一个实施例中,如图4所示,步骤s13包括如下步骤s41-s42:

在步骤s41中,每间隔预设的等待周期,将所述mysql中的待打印接口列表发送到redis缓存中;

在步骤s42中,将所述redis缓存中待打印接口列表实时的写入到系统缓存中。

在一个实施例中,预设的等待周期的上限为不超过用户的等待耐心。但是,该预设的等待周期的下限不能尽量快。否则消耗的系统资源过多,而且没有必要性。进一步的,否在一个预设的等待周期内,该mysql中的待打印接口列表中没有新增任何接口,则将再等一个预设的等待周期。redis是内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。将redis中的待打印接口列表写入到系统缓存,系统就可直接调用该待打印接口列表进行打印。

在一个实施例中,如图5所示,还包括如下步骤s51-s52:

在步骤s51中,若系统缓存中的待打印接口列表中不存在接口名,设置系统缓存和redis缓存的清除时限;

在步骤s52中,在达到所述清除时限之前,仍未检测到系统缓存中存在接口名,释放系统缓存和redis缓存。

在一个实施例中,系统缓存的空间是有限的,非必须的任务进程无限期占用系统缓存会导致系统的性能下降。故需要设置一种释放该待打印接口列表所占据的缓存的机制,设置在一个时间段内(既清除时限),若系统缓存中的待打印接口列表中一直没有接收到任何接口名,就对系统缓存进行释放。同样的机制,也可以在ridis缓存中进行设置,两者的清除时限可一致也可各自独立设置。

在一个实施例中,图6是根据一示例性实施例示出的一种基于拦截的接口日志打印的装置框图。如图6示,该装置包括拦截模块61、配置模块62、写入模块63和打印模块64。

该拦截模块61,用于拦截用户发出的接口日志打印请求;

该配置模块62,用于配置待打印接口列表;

该写入模块63,用于将所述待打印接口列表写入系统缓存中;

该打印模块64,用于将系统缓存中的待打印接口列表进行打印。

如图7所示,该拦截模块61包括调用子模块71、拦截子模块72和获取子模块73。

该调用子模块71,用于当用户发出的接口日志打印请求从前端到达后端时,调用spring拦截;

该拦截子模块72,用于通过spring拦截用户发出的接口日志打印请求;

该获取子模块73,用于获取所述接口日志打印请求中的接口名。

如图8所示,该配置模块62包括确定子模块81和存储子模块82。

该确定子模块81,用于确定用户发出的接口日志打印请求中的接口名;

该存储子模块82,用于将所述接口日志打印请求中的接口名存储到mysql中的待打印接口列表中。

如图9所示,该入模块63包括发送子模块91和写入子模块92。

该发送子模块,用于每间隔预设的等待周期,将所述mysql中的待打印接口列表发送到redis缓存中;

该写入子模块,用于将所述redis缓存中待打印接口列表实时的写入到系统缓存中。

如图10所示,还包括设置模块101和释放模块102。

该设置模块101,用于若系统缓存中的待打印接口列表中不存在接口名,设置系统缓存和redis缓存的清除时限;

该释放模块102,用于在达到所述清除时限之前,仍未检测到系统缓存中存在接口名,释放系统缓存和redis缓存。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。


技术特征:

1.一种基于拦截的接口日志打印的方法,其特征在于,包括:

拦截用户发出的接口日志打印请求;

配置待打印接口列表;

将所述待打印接口列表写入系统缓存中;

将系统缓存中的待打印接口列表进行打印。

2.如权利要求1所述的方法,其特征在于,所述拦截用户发出的接口日志打印请求,包括:

当用户发出的接口日志打印请求从前端到达后端时,调用spring拦截;

通过spring拦截用户发出的接口日志打印请求;

获取所述接口日志打印请求中的接口名。

3.如权利要求1所述的方法,其特征在于,所述配置待打印接口列表,包括:

确定用户发出的接口日志打印请求中的接口名;

将所述接口日志打印请求中的接口名存储到mysql中的待打印接口列表中。

4.如权利要求3所述的方法,其特征在于,所述将所述待打印接口列表写入系统缓存中,包括:

每间隔预设的等待周期,将所述mysql中的待打印接口列表发送到redis缓存中;

将所述redis缓存中待打印接口列表实时的写入到系统缓存中。

5.如权利要求1所述的方法,其特征在于,还包括:

若系统缓存中的待打印接口列表中不存在接口名,设置系统缓存和redis缓存的清除时限;

在达到所述清除时限之前,仍未检测到系统缓存中存在接口名,释放系统缓存和redis缓存。

6.一种基于拦截的接口日志打印的装置,其特征在于,包括:

拦截模块,用于拦截用户发出的接口日志打印请求;

配置模块,用于配置待打印接口列表;

写入模块,用于将所述待打印接口列表写入系统缓存中;

打印模块,用于将系统缓存中的待打印接口列表进行打印。

7.根据权利要求6的装置,其特征在于,所述拦截模块,包括:

调用子模块,用于当用户发出的接口日志打印请求从前端到达后端时,调用spring拦截;

拦截子模块,用于通过spring拦截用户发出的接口日志打印请求;

获取子模块,用于获取所述接口日志打印请求中的接口名。

8.根据权利要求6的装置,其特征在于,所述配置模块,包括:

确定子模块,用于确定用户发出的接口日志打印请求中的接口名;

存储子模块,用于将所述接口日志打印请求中的接口名存储到mysql中的待打印接口列表中。

9.根据权利要求8的装置,其特征在于,所述写入模块,包括:

发送子模块,用于每间隔预设的等待周期,将所述mysql中的待打印接口列表发送到redis缓存中;

写入子模块,用于将所述redis缓存中待打印接口列表实时的写入到系统缓存中。

10.根据权利要求6的装置,其特征在于,还包括:

设置模块,用于若系统缓存中的待打印接口列表中不存在接口名,设置系统缓存和redis缓存的清除时限;

释放模块,用于在达到所述清除时限之前,仍未检测到系统缓存中存在接口名,释放系统缓存和redis缓存。

技术总结
本发明公开了一种基于拦截的接口日志打印的方法及装置。所述基于拦截的接口日志打印的方法,包括:拦截用户发出的接口日志打印请求;配置待打印接口列表;将所述待打印接口列表写入系统缓存中;将系统缓存中的待打印接口列表进行打印。本发明对于遗漏打印的接口日志,无需重新部署系统,即可自动直接形成包含该接口日志的待打印接口列表,不仅节省了人工手操方式的人工成本,还通过缓存技术使其具备了较高的可靠的性能和效率。

技术研发人员:宋浩
受保护的技术使用者:无线生活(北京)信息技术有限公司
技术研发日:2020.01.13
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-30152.html

最新回复(0)