Perf4j整合Logback

Perf4j 是一个性能分析和监控组件,用于替代:

long start = System.currentTimeMillis();
// do someting
log.info("ms for block n was: " + (System.currentTimeMillis() - start));
并提供统计和分析功能,输出优美的统计结果,并能结合Google Char、JMX、Servlet、 annotation 等高级玩意。

 

使用也很简单:

StopWatch stopWatch = new Slf4JStopWatch("mytag1");
// do someting
stopWatch .stop();
 

当前(0.9.13)只提供了基于log4j的配置,我用logback,幸好有人已经提供了logback的实现 ,发挥拿来主义精神。

 

logback.xml的配置:

<!--统计记录输出文件-->
<appender name="perf4jFile" class="ch.qos.logback.core.FileAppender">
	<file>pref.log</file>
	<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
		<pattern>%m%n</pattern>
	</encoder>
</appender>

<!--获取所有的StopWatch 信息并处理-->
<appender name="perf4j" timeSlice="1000" class="xx.showcase.perf4j.Slf4JAsyncCoalescingStatisticsAppender">
	<!--时间间隔-->
	<param name="timeSlice" value="1000" />
	<appender-ref ref="perf4jFile"/>
</appender>

<!--org.perf4j.TimingLogger是StopWathc的日志名,additivity false表示只写到perf4j文件-->
<logger name="org.perf4j.TimingLogger" additivity="false">
	<level value="INFO" />
	<appender-ref ref="perf4j" />
</logger>

 此配置和xml的log4j配置几乎是一致的。

 

程序定时会把统计结果写到文件中,Over!

 

参考:

http://perf4j.codehaus.org/devguide.html

http://www.infoq.com/cn/articles/perf4j

http://www.insaneprogramming.be/?p=242

你可能感兴趣的:(html,xml,log4j,servlet,Google)