springboot怎么利用@Aspect实现日志工具类
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍了springboot怎么利用@Aspect实现日志工具类的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springboot怎么利用@Aspect实现日志
千家信息网最后更新 2025年02月02日springboot怎么利用@Aspect实现日志工具类
这篇文章主要介绍了springboot怎么利用@Aspect实现日志工具类的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springboot怎么利用@Aspect实现日志工具类文章都会有所收获,下面我们一起来看看吧。
一、导包
org.aspectj aspectjrt 1.8.12 org.aspectj aspectjweaver 1.9.4
二、在启动类上进行注解自动扫描
@SpringBootApplication@EnableCaching@EnableAsync@ComponentScan({"com.workorder.*"})public class WorkOrderApplication { public static void main(String[] args) { SpringApplication.run(WorkOrderApplication.class, args); }}
三、工具类
@Aspect@Component@Slf4jpublic class LogAspect { @Autowired private Environment env; @Pointcut("execution(public * com.workorder..controller..*.*(..))") public void logPointCut() {} @Around("logPointCut()") public Object around(ProceedingJoinPoint point) throws Throwable { log.info("========================================="); long beginTime = System.currentTimeMillis(); //执行方法 Object result = point.proceed(); //执行时长(毫秒) long time = System.currentTimeMillis() - beginTime; //保存日志 saveSysLog(point, time); return result; } private void saveSysLog(ProceedingJoinPoint joinPoint, long time) { // 接收到请求,记录请求内容 ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); String logStr=""; if (isEnvironment("dev")){ String requestUrl = request.getRequestURL().toString() + "?"; //获取所有参数方法 Enumerationenu=request.getParameterNames(); while(enu.hasMoreElements()){ String paraName = enu.nextElement(); requestUrl+=paraName + "=" + request.getParameter(paraName) + "&"; } logStr+="\r\n请求地址:"+ requestUrl.substring(0,requestUrl.length()-1); } //请求的参数 Object[] args = joinPoint.getArgs(); String params = JSONUtil.toJsonStr(args); logStr+="\r\n请求方式:"+ request.getMethod(); logStr+="\r\n请求方法Token:"+ request.getHeader("token"); logStr+="\r\n请求参数:"+ params; logStr+="\r\nIP:"+ request.getRemoteAddr(); logStr+="\r\n响应时间:"+ time+" ms"; log.info(logStr); /** * 判断当前是什么环境 * @param str * @return */ private boolean isEnvironment(String str) { boolean flag = false; String[] arr = env.getActiveProfiles(); List list = Arrays.asList(arr); if (list.contains(str)) { flag = true; } return flag; }}
四、结果
关于"springboot怎么利用@Aspect实现日志工具类"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"springboot怎么利用@Aspect实现日志工具类"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
工具
日志
内容
参数
方法
知识
篇文章
价值
地址
操作简单
文章
方式
时长
时间
易懂
更多
注解
环境
看吧
结果
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器军用
信息网络安全知识培训视频
软件开发时间计划
网络安全师的职业目标
软件开发公司会有电脑吗
服务器里面有数据库吗
程序员怎么做网络安全
华为云服务器怎么登陆
王牌战争怎么开免费服务器教程
河南t3财务软件开发
数据库日志组
http服务器发送静态文件
服务器怎样分配IP和端口号
喀左县网络安全会议
音乐播放器数据库表关系
前台和后台数据库连接
记账数据库
停车场收费管理数据库
如何避免服务器超时
bcm软件开发招聘
ibmz15系列服务器
sql数据库数据写入
想从事软件开发报哪些大学
街道广泛开展网络安全周活动
python 查数据库
网络安全检查评分标准
软件开发系统分析员
软件开发公司财务部副经理的职责
大理软件开发培训学院
bcm软件开发招聘