spring aop实现log 日志跟踪】的更多相关文章

之前写的那篇是基于springboot的(https://www.cnblogs.com/yaoyuan2/p/10302802.html),由于遗留项目用的是spring,因此需要在spring基础上实现. 代码结构 web.xml <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:spring-application.xml <…
前几天做系统日志记录的功能,一个操作调一次记录方法,每次还得去收集参数等等,太尼玛烦了.在程序员的世界里,当你的一个功能重复出现多次,就应该想想肯定有更简单的实现方法.于是果断搜索各种资料,终于搞定了,现在上代码 环境: SpringMvc + myBatis jar包 :…
设计原则和思路: 元注解方式结合AOP,灵活记录操作日志 能够记录详细错误日志为运营以及审计提供支持 日志记录尽可能减少性能影响 操作描述参数支持动态获取,其他参数自动记录. 1.定义日志记录元注解, 根据业务情况,要求description支持动态入参.例:新增应用{applicationName},其中applicationName是请求参数名. /** * 自定义注解 拦截Controller * * @author jianggy * */ @Target({ ElementType.P…
目的: 统一日志输出格式 思路: 1.针对不同的调用场景定义不同的注解,目前想的是接口层和服务层. 2.我设想的接口层和服务层的区别在于: (1)接口层可以打印客户端IP,而服务层不需要 (2)接口层的异常需要统一处理并返回,而服务层的异常只需要向上抛出即可 3.就像Spring中的@Controller.@Service.@Repository注解那样,虽然作用是一样的,但是不同的注解用在不同的地方显得很清晰,层次感一下就出来了 4.AOP去拦截特定注解的方法调用 5.为了简化使用者的操作,采…
看过我之前的文章的就可以一步一步搭建起日志传输到搜索引擎 不知道的 看下之前的文章 (1) 记一次logback传输日志到logstash根据自定义设置动态创建ElasticSearch索引 (2)关于” 记一次logback传输日志到logstash根据自定义设置动态创建ElasticSearch索引” 这篇博客相关的优化采坑记录 (3)日志收集(ElasticSearch)串联查询 MDC 这里我们结合sleuth 可以降服务之间的调用使用唯一标识串联起来已达到我们通过一个标识可以查看所有跨…
1.Spring框架也需要引入日志相关的jar包 * 在spring-framework-3.0.2.RELEASE-dependencies/org.apache.commons/com.springsource.org.apache.commons.logging/1.1.1 * com.springsource.org.apache.commons.logging-1.1.1.jar * 还需要引入log4j的jar包 spring-framework-3.0.2.RELEASE-depe…
spring配置文件中增加启用aop的配置 <!-- 增加aop 自动代理配置 --> <aop:aspectj-autoproxy /> 切面类配置 package com.zchx.acvices; import java.text.SimpleDateFormat; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.an…
时间过的真快,转眼就一年了,没想到随手写的笔记会被这么多人浏览,不想误人子弟,于是整理了一个优化版,在这里感谢智斌哥提供的建议和帮助,话不多说,进入正题 所需jar包 :spring4.3相关联以及aspectjweaver-1.8.5.jar,jdk  1.7,1.8亲测可用,源码下载链接放在最后,关键代码如下: 1.Action package com.opr.controller; import javax.servlet.http.HttpServletRequest; import j…
使用场景: 1:调用外部接口时需要记录出参和入参. 2:分布式系统之间,调用各个系统之间需要记录日志,一旦出现了问题也可以找得到元数据 一言不合,上代码: # 枚举类 package xxxxxxxxxx; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.anno…
@Aspect @Component @Slf4j public class ControllerAspact { @Pointcut("execution(public * com.example.controller..*.*(..))") public void requestLog() { } @Before("requestLog()") public void doBefore(JoinPoint joinPoint) { if (log.isDebug…