当前位置: 首页 > 工具软件 > Perf4J > 使用案例 >

perf4j+SpringMvc监测代码性能

柴嘉禧
2023-12-01
项目使用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.slf4j</groupId>
   <artifactId>slf4j-api</artifactId>
   <version>1.6.0</version>
</dependency>
<dependency>
   <groupId>org.perf4j</groupId>
   <artifactId>perf4j</artifactId>
</dependency>
<dependency>
   <groupId>org.aspectj</groupId>
   <artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
   <groupId>org.aspectj</groupId>
   <artifactId>aspectjweaver</artifactId>
</dependency>
 
2、spring配置
<!-- 【启用springmvc注解驱动】 -->
<mvc:annotation-driven />
<!-- 定义注解扫描的包 Use-default-filter默认true 会扫描当前包和子包 -->
<context:component-scan base-package="com.et.api"></context:component-scan>
<!-- 使用cglib代理 -->
<aop:aspectj-autoproxy proxy-target-class="true"/>
   <!--支持perf4j-->
<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表达式。

 类似资料: