基于ResponseBodyAdvice实现的操作日志系统的制作方法

文档序号:29128511发布日期:2022-03-05 00:51阅读:396来源:国知局
基于ResponseBodyAdvice实现的操作日志系统的制作方法
基于responsebodyadvice实现的操作日志系统
技术领域
1.本发明涉及操作日志系统,具体为基于responsebodyadvice实现的操作日志系统,属于操作日志系统技术领域。


背景技术:

2.现如今互联网性能逐渐更新换代的今天,web开发的系统逐步的完善,java下web开发的系统更是多如繁星,对于管理系统完善日志记录的需求越来越高,通过设计一套完整,解耦合,高可用的日志系统有利于提高系统的安全性,同时可根据业务需求监控特定服务访问情况,从而反应该服务在整体应用中的使用频率。


技术实现要素:

3.本发明的目的在于提供基于responsebodyadvice实现的操作日志系统,以解决上述背景技术中提出的问题。
4.本发明通过以下技术方案来实现上述目的,基于responsebodyadvice实现的操作日志系统,包括以下步骤:
5.步骤一:用户进行访问系统;
6.步骤二:前置拦截器拦截;
7.步骤三:存储日志信息;
8.步骤四:是否存在日志注解的判断;
9.步骤五:记录日志业务资源信息;
10.步骤六:后置拦截最终处理记录日志;
11.步骤七:完成请求。
12.优选的,在步骤一中,用户发出请求,访问系统。
13.优选的,在步骤二中,前置拦截器解析请求中的基本资源,包括解析用户身份信息,权限校验,前置拦截点作为请求进入系统的开始时间。
14.优选的,在步骤三中,在完成请求解析后,将后续需要的信息存储在本地线程中,本地线程存储信息在每个请求的生命周期中有效,在请求结束后将被清除。
15.优选的,在步骤四种,开发人员需要根据业务实际情况,是否在业务控制器的具体requestmapping上添加日志注解,如果需要记录日志则添加,注解的参数为自定义的该接口资源信息的枚举,通过枚举类便于统一管理监控资源的信息。
16.优选的,在步骤五中,在具体实际系统日志中,需要记录业务中受影响的数据资源,比如被修改/删除的人员信息,开发人员可在此处将该信息存储在本地线程中,多线程情况下,需要保证信息存储在主线程中。
17.优选的,在步骤六中,该后置拦截基于实现spring暴露的responsebodyadvice接口,通过实现该接口的supports方法,确认是否具体拦截日志注解及注解规则,通过实现beforebodywrite方法,作为日志信息最终处理站,方法可获取全部日志信息,包括访问用
户信息,访问时间,该拦截点视为请求结束时间,与开始时间之差为后台服务请求耗时,接口日志信息,包括注解枚举信息和接口元数据,业务信息,将所有信息包装在日志实体中,通过另外新开线程存储到数据库。
18.本发明的有益效果是:
19.1、该基于responsebodyadvice实现的操作日志系统,本方案在增强原有传统方案的基础上,将系统服务资源通过自定义注解进行规整分类,而该注解以枚举类方式存入服务资源的完整信息。在需要监控的服务上添加相应注解即可。同时基于responsebodyadvice接口实现实现后置拦截,将请求的完整生命周期中需要监控的资源通过本地线程存储,其中可包括访问的用户信息,访问的初始时间,访问具体业务资源时涉及的受影响的业务资源(日志系统应用在我司体测平台时关联学员信息)等,关键点在于该技术结合本地线程,自定义注解搭配枚举,responsebodyadvice实现等方式全面整合日志信息,是的监测数据全面且达到细粒度监测服务。
20.2、该基于responsebodyadvice实现的操作日志系统,通过枚举统一管理个接口的日志注解,通过本地线程请求全周期存储日志信息,并使用前后置拦截,完整记录所有需要监测的数据。
附图说明
21.图1为本发明的系统结构示意图。
具体实施方式
22.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.请参阅图1所示,基于responsebodyadvice实现的操作日志系统,包括以下步骤:
24.a、用户访问系统:用户发出请求,访问系统。
25.b、前置拦截器拦截:前置拦截器一般解析请求中的基本资源,包括解析用户身份信息,权限校验,前置拦截点作为请求进入系统的开始时间。
26.c、存储日志信息:在完成请求解析后,将后续需要的信息存储在本地线程中,本地线程存储信息在每个请求的生命周期中有效,在请求结束后将被清除。
27.d、是否存在日志注解的判断:开发人员需要根据业务实际情况,是否在业务控制器的具体requestmapping上添加日志注解,如果需要记录日志则添加,注解的参数为自定义的该接口资源信息的枚举,通过枚举类便于统一管理监控资源的信息。
28.e、记录日志业务资源信息:在具体实际系统日志中,可能需要记录业务中受影响的数据资源,比如被修改/删除的人员信息,开发人员可在此处将该信息存储在本地线程中(多线程情况下,需要保证信息存储在主线程中)。
29.f、后置拦截最终处理记录日志:该后置拦截基于实现spring暴露的responsebodyadvice接口,通过实现该接口的supports方法,确认是否具体拦截日志注解及注解规则,通过实现beforebodywrite方法,作为日志信息最终处理站,方法可获取全部
日志信息,包括访问用户信息,访问时间(该拦截点视为请求结束时间,与开始时间之差为后台服务请求耗时),接口日志信息(包括注解枚举信息和接口元数据),业务信息等。将所有信息包装在日志实体中,通过另外新开线程存储到数据库。g、完成请求:完成请求。
30.本发明实施方式:日志系统根据请求的生命周期主要分为三个阶段,先通过前置拦截器拦截请求,解析存储基本请求数据,再进入业务控制器中,该部分未实际业务程序,在此可以将业务操作中所需监测的数据进行整合统一存储,最后返回到responsebodyadvice实现类中,该部分主要分为两块实现,其中supports是对拦截规则的设置,beforebodywrite是最终日志处理部分,在这里将所有数据归纳整合进日志实体,通过新线程处理日志信息并持久化。
31.在本发明的描述中,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”、“固定”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
32.本发明使用到的标准零件均可以从市场上购买,异形件根据说明书的和附图的记载均可以进行订制。
33.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1