Perf4j 這是應用程序的性能分析和檢查插件。它可以使用彈簧AOP與彈簧結合。它創建一個日誌文件,供給解析器來分析和生成相關信息。它可以默認提供平均,平均,標準偏差。 有關更多一般信息,請查看http://perf4j.codehaus.org/index.html
如何設置Perf4j。 對於正常的設置,您只需添加perf4j jar併爲要監控的每個代碼sniplet創建StopWatch實例。
StopWatch stopWatch= new StopWatch(「snipletTagName」)
…
//{your code sniplet}
…
stopwatch.stop();
這將創建perf4j監視器,您將獲得控制檯上的logg信息。
本文檔的主要目的是通過安裝瞭解將perf4j與spring集成的設置。
1.添加所有Jar文件。
1. perf4j-0.9.16-slf4jonly.jar
2.aspectjweaver-1.6.12.jar
3.aopalliance-1.0.jar
4.commons-logging-1.1.1.jar
5.logback-classic-1.0.7.jar
6.logback-core-1.0.7.jar
7.slf4j-api-1.7.1.jar
8.perf4j-0.9.16.jar
9.aspectjrt-1.6.1.jar
10.commons-jexl-1.1.jar
11.asm-1.5.3.jar
12.cglib-2.1_3.jar
請確保您的類路徑中包含所有此jar以及spring庫。 2.創建 自己logback.xml將被隱含的Perf4被 使用的logback.xml的內容將是
<configuration>
<appender name="CoalescingStatistics"
class="org.perf4j.logback.AsyncCoalescingStatisticsAppender">
<param name="TimeSlice" value="1" />
<appender-ref ref="perf4jFileAppender" />
</appender>
<appender name="RootConsoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date %-5level [%thread] %logger{36} [%file:%line] %msg%n
</pattern>
</layout>
</appender>
<appender name="perf4jFileAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>logs/perf4j.log</File>
<encoder>
<Pattern>%date %-5level [%thread] %logger{36} [%file:%line] %msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/perf4j.%d{yyyy-MM-dd}.log</FileNamePattern>
</rollingPolicy>
</appender>
<!-- Loggers -->
<!-- The Perf4J logger. Note that org.perf4j.TimingLogger is the value of
the org.perf4j.StopWatch.DEFAULT_LOGGER_NAME constant. Also, note that additivity
is set to false, which is usually what is desired - this means that timing
statements will only be sent to this logger and NOT to upstream loggers. -->
<logger name="org.perf4j.TimingLogger" additivity="false">
<level value="DEBUG" />
<appender-ref ref="CoalescingStatistics" />
<appender-ref ref="perf4jFileAppender" />
<appender-ref ref="RootConsoleAppender" />
</logger>
</configuration>
3.In你的需要添加的AspectJ標籤,使Spring配置文件@ prof4j的配置文件註釋。
**>(注:什麼是@Profiled註解?:你會在所有被從春季實例調用或使用 依賴注入的類此標記添加到所有
方法的對象基本上應該是彈簧上下文 註冊並且該方法應該由彈簧上下文中註冊的對象 調用。我浪費1天想爲什麼當時沒有記錄我的方法 我意識到,我測試的對象是不是春天上下文的一部分 。**
OK the code that you need to add to spring configuration xml is.
<!-- this is my spring-context.xml -->
<beans>
….
<aop:aspectj-autoproxy>
<aop:include name="timingAspect" />
</aop:aspectj-autoproxy>
<bean id="timingAspect" class="org.perf4j.slf4j.aop.TimingAspect" />
<!-- this is the class that will be registered with the spring and now we can get this class and call the method that we need to monitor-->
<bean class="com.perf4jexample.Test" />
….
</beans>
4.Create測試類,將實現@Profiled註解。
public class Test {
private String testVal;
public Test() {
// TODO Auto-generated constructor stub
}
@Profiled
public void testing() {
System.out.println("testt");
}
public String getTestVal() {
return testVal;
}
public void setTestVal(String testVal) {
this.testVal = testVal;
}
}
5.OK現在你必須設置每個剛一點是一點是測試類,將啓動Spring上下文,並加載它的Perf4。
public class Test(){
public static void main(){
AbstractApplicationContext context = new ClassPathXmlApplicationContext(
"spring-context.xml");
context.start();
Test bean = context.getBean(Test.class);
bean.testing();
}
我希望通過以下設置你應該能夠perf4j控制檯appender在控制檯上顯示一行。在日誌 用於生成您記錄路徑上的性能統計信息執行 的Java
的Perf4監控命令罐子的Perf4-0.9.16.jar myLogger.log
對於生成圖形 Java的罐子的Perf4-0.9。 16.jar --graph perfGraphs.out myLogger.log
我希望本教程能幫助您將Spring,perf4j,logback與集成註釋集成在一起。
所有Codehaus服務已終止。您與Codehaus的鏈接已損壞。 – naXa 2016-01-06 08:15:18