阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间

通过日志不同的级别监测每一个service执行的时间。
比如当一个service的执行时间超过了3秒。或者更长的话我们就打印一个error级别的。
如果service运行的时间比较中等,例如2秒。就用warn警告日志。
如果service运行的比较一般,2秒以下。输出info级别。
所以我们是可以通过通过日志来赋值我们知道service执行的时间。

实现aop

借助spring 的aop,也就是面向界面的功能,也就是spring的核心功能。想用实现aop切面,就需要编写切入点。
创建aspect包,然后创建类ServiceLogAspect
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第1张图片
首先加上@Component注解。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第2张图片

引入aop


在聚合工程里面引入
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第3张图片

然后给我们的切面类加上注解
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第4张图片

阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第5张图片

aop有5种类型,2和5要区分,2是在方法正常调用之后不能报异常,如果报了异常,通知是执行不了的。
如果报了异常可以在最终通知里面执行。最终通知可以理解为try catch的 finallly
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第6张图片
在这里我们要使用的是环绕通知。它的注解是@Around

在上面声明logger
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第7张图片

阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第8张图片

阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第9张图片
info最低级别,
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第10张图片
这里有个红线。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第11张图片
直接抛出这个异常。这样环绕通知执行的方法就写好了。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第12张图片
既然是利用aop。就在方法上面加上注解。注解就是切面表达式。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第13张图片

execution执行表达式。


所有的service所在的包。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第14张图片
复制包的路径。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第15张图片

切面表达式,写好了。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第16张图片

测试

先install 我们的项目
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第17张图片

注册页面,我们随便输入一个i。就会后台查询这个用户名是否存在。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第18张图片
这个时候,来看下我们的控制台。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第19张图片

阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第20张图片

执行的就是这个方法
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第21张图片

我们在切面方法里面通过签名获得的
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第22张图片
在创建用户的方法里面,休眠3500毫秒。需要try catch一下。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第23张图片
用户登陆休眠2500秒。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第24张图片

修改了service类,进行全局的install
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第25张图片

重启api服务。

来实现一个真正的注册 ,密码是123123
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第26张图片
注册因为里面代码sleep了。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第27张图片
级别是error 因为是3517毫秒。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第28张图片

测试登陆

下面测试登陆。F12 把cookie清理掉。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第29张图片

阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第30张图片

登陆的接口耗时。级别是warn 因为是2506毫秒。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间_第31张图片

这样就根据日志级别监控到每个service执行的时间。都可以通过日志来记录。

结束

 

你可能感兴趣的:(阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-16 通过日志监控service执行时间)