spring配置文件中:
<!-- 日志时间打印 -->
<aop:config>
<!-- Spring 2.0 可以用 AspectJ 的语法定义 Pointcut,这里拦截 service 包中的所有方法 -->
<aop:advisor id="methodTimeLog" advice-ref="methodTimeAdvice" pointcut="execution(* *..service..*(..))"/>
</aop:config>
<bean id="methodTimeAdvice" class="com.ambow.log.MethodTimeAdvice"/>
MethodTimeAdvice拦截器:
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.StopWatch;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class MethodTimeAdvice implements MethodInterceptor {
protected final Log log = LogFactory.getLog(MethodTimeAdvice.class);
/**
* 拦截要执行的目标方法
*/
public Object invoke(MethodInvocation invocation) throws Throwable {
//用 commons-lang 提供的 StopWatch 计时,Spring 也提供了一个 StopWatch
StopWatch clock = new StopWatch();
clock.start(); //计时开始
Object result = invocation.proceed();
clock.stop(); //计时结束
//方法参数类型,转换成简单类型
Class[] params = invocation.getMethod().getParameterTypes();
String[] simpleParams = new String[params.length];
for (int i = 0; i < params.length; i++) {
simpleParams[i] = params[i].getSimpleName();
}
log.info("Takes:" + clock.getTime() + " ms ["
+ invocation.getThis().getClass().getName() + "."
+ invocation.getMethod().getName() + "("+StringUtils.join(simpleParams,",")+")] ");
return result;
}
}
分享到:
相关推荐
NULL 博文链接:https://miaoxianjie.iteye.com/blog/2067308
此工程为使用eclipse创建java project,使用jdk1.8,项目中包含完整的代码和jar包,导入eclipse即可运行
spring boot aop 统一处理日志 demo spring boot aop 统一处理日志 demo
Spring Boot项目中使用Logback日志与使用AOP拦截请求日志信息
顾名思义,Before Advice会在目标对象的方法执行之前被调用,您可以通过实现org.springframework.aop.MethodBeforeAdvice接口来实现Before Advice的逻辑,接口定义如下: java 代码 1. package org.spring...
AopLogAopLog是基于SpringAop和ThreadLocal实现的一个对请求方法埋点记录与处理的日志工具包。设计目的和场景:使用Spring Aop拦截程序,基本上都是同一个小异,不想日后每个项目都柏林都写一份这样的Aop拦截处理...
Spring MVC AOP通过自定义注解方式拦截Controller等实现日志管理, springMVC里做添加AOP拦截,用于捕获异常。
AutoLogging 监控日志框架一个非常强大的监控日志输出框架,主要功能包含方法监控日志输出应用内调用链路追踪可以通过SpringAOP动态字节码运行时注入两种方式引入,只要一个注解即可开启所有功能,而且具有强大的可...
基于Log4j+SpringAOP+Annotation的可注解日志切面组件 使用方式 @Log(logAfter = true, logBefore = true) public returntype methodName(params) 测试类com.liam.aop.aspect.test.AopLogAnnotationTest 测试输出 ...
Spring AOP! 弹簧速度自由标记
ssh+aop+log4j+日志拦截器+注解
日志记录:以JSON格式输出日志,通过log4j配置日志文件输出方式。 日志查询:提供servlet加载日志文件,前台JSON处理查询对照。 详细作用说明参考:http://jingyan.baidu.com/edit/content?type=draft&did=3
自定义日志输出,加aop切面Controller,使用DRUID访问mysql,spring mvc基本框架搭建,适合初学者,页面适用IE6
主要介绍了Spring Boot2集成AOPLog来记录接口访问日志,日志是一个Web项目中必不可少的部分,借助它我们可以做许多事情,比如问题排查、访问统计、监控告警等,需要的朋友可以参考下
spring-aop-5.2.6.RELEASE.jar spring-aspects-5.2.6.RELEASE.jar spring-beans-5.2.6.RELEASE.jar spring-context-5.2.6.RELEASE.jar spring-core-5.2.6.RELEASE.jar spring-expression-5.2.6.RELEASE.jar log4j....
项目日志记录是项目开发、运营必不可少的内容,有了它可以对系统有整体的把控,出现任何问题都有踪迹可寻。下面这篇文章主要给大家介绍了关于Spring MVC项目中log4J和AOP使用的相关资料,需要的朋友可以参考下。
功能包括:功能日志记录(访问、参数、异常、返回结果集)、数据日志记录、日志查询... 日志记录:以JSON格式输出日志,通过log4j配置日志文件输出方式。 日志查询:提供servlet加载日志文件,前台JSON处理查询对照。
--演示了如何在Spring Boot里面使用日志配置,以及logback,log4j2等日志的使用 23 Spring Boot 监控和度量47:09 --Spring Boot内置的监控点、自定义的监控状况检查、自定义度量统计,输出等等 24 Spring Boot ...
目前整个开发社区对AOP(Aspect Oriented Programing)推崇备至,也涌现出大量支持AOP的优秀Framework,--Spring, JAC, Jboss AOP 等等。AOP似乎一时之间成了潮流。Java初学者不禁要发出感慨,OOP还没有学通呢,又来AOP...
功能:实现AOP中异常日志管理的类