perf4j+SpringMvc监测代码性能

项目使用SpringMvc,使用slf4j+logback记录日志
所以若要@Profiled起作用,关键是配置如下这行
 
  
<bean id="timingAspect" class="org.perf4j.slf4j.aop.TimingAspect" />
注意:如果使用的 slf4j,则使用
org.perf4j.slf4j.aop.TimingAspect
如果使用的log4j,则使用
org.perf4j.log4j.aop.TimingAspect
perf4j有以上两种实现

1、pom依赖
<dependency>
   <groupId>org.slf4jgroupId>
   <artifactId>slf4j-apiartifactId>
   <version>1.6.0version>
dependency>
<dependency>
   <groupId>org.perf4jgroupId>
   <artifactId>perf4jartifactId>
dependency>
<dependency>
   <groupId>org.aspectjgroupId>
   <artifactId>aspectjrtartifactId>
dependency>
<dependency>
   <groupId>org.aspectjgroupId>
   <artifactId>aspectjweaverartifactId>
dependency>

2、spring配置

<mvc:annotation-driven />

<context:component-scan base-package="com.et.api">context:component-scan>

<aop:aspectj-autoproxy proxy-target-class="true"/>
   
<bean id="timingAspect" class="org.perf4j.slf4j.aop.TimingAspect" />

3、

@Profiled(tag = "search({$0},{$1},{$2})")  

@Profiled(tag = "search({$0},{$1},{$2})")

    由此产生的日志语句形如: 

2013-04-07 14:37:23,734 [main] INFO org.perf4j.TimingLogger - start[开始时间] time[执行耗时] tag[search(a,b,c)]   

2013-04-07 14:37:23,734 [main] INFO org.perf4j.TimingLogger - start[开始时间] time[执行耗时] tag[search(a,b,c)]

    说明:当方法有参数时,可以通过{$x}输出参数值,当参数为一个对象时,可以通过{$x.属性}的方式法输出对象的属性值;

  tag标识支持JEXL表达式。


你可能感兴趣的:(java)