當使用@Profiled
註釋秒錶添加到您的代碼,您通常會使用AspectJ裝載時織入(LTW)來測試您的代碼在加載/運行時,它增加了秒錶開始/停止和在註釋方法周圍錄音。
使用哪個日誌庫/ API(log4j,slf4j,commons-logging,JUL)取決於您在配置LTW的aop.xml
中配置的org.perf4j.aop.ProfiledTimingAspect
的特定實例。例如此配置:
<aspectj>
<!--
We only want to weave in the log4j TimingAspect into the @Profiled classes.
Note that Perf4J provides TimingAspects for the most popular Java logging
frameworks and facades: log4j, java.util.logging, Apache Commons Logging
and SLF4J. The TimingAspect you specify here will depend on which logging
framework you wish to use in your code.
-->
<aspects>
<aspect name="org.perf4j.log4j.aop.TimingAspect"/>
<!-- if SLF4J/logback use org.perf4j.slf4j.aop.TimingAspect instead -->
</aspects>
<weaver options="-verbose -showWeaveInfo">
<!--
Here is where we specify the classes to be woven. You can specify package
names like com.company.project.*
-->
<include within="ProfiledExample"/>
</weaver>
</aspectj>
...使用org.perf4j.log4j.aop.TimingAspect
,所以秒錶將被記錄到您的配置Log4J的秒錶記錄。如果您想避免使用第三方庫,則可以對JUL JDK記錄器進行更改。