我在一个部署在jboss应用服务器上的请求率很高的多线程请求处理器应用程序中使用perf4j。
我使用它与log4j和AsyncCoalescingStatisticsAppender一起提供运行时统计数据。这是部分log4j.xml文件:
<appender name="timeFileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="C:\\JavaEE\\JCATestLog\\TimeInfo.log"/>
<param name = "MaxFileSize" value = "15000KB"/>
<param name = "MaxBackupIndex" value = "10" />
<param name="Append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n"/>
</layout>
</appender>
<appender name="CoalescingStatistics"
class="org.perf4j.log4j.AsyncCoalescingStatisticsAppender">
<param name="TimeSlice" value="10000"/>
<appender-ref ref="timeFileAppender"/>
</appender>
<logger name="org.perf4j.TimingLogger" additivity="false">
<level value="INFO"/>
<appender-ref ref="CoalescingStatistics"/>
</logger>我的问题是,计数参数的结果,并不等于确切的no的请求。例如,在测试中,我发送10000个请求,但是写入日志文件的计数参数是9560。
有向导吗?
发布于 2013-07-28 07:38:06
我找到了答案。问题是queueSize of AsyncCoalescingStatisticsAppender。因为我的应用程序中请求率很高,所以队列容量不足。我们可以将log4j.xml中的队列大小设置为:
<appender name="CoalescingStatistics"
class="org.perf4j.log4j.AsyncCoalescingStatisticsAppender">
<param name="TimeSlice" value="10000"/>
<param name="QueueSize" value="100000"/>
<appender-ref ref="timeFileAppender"/>
</appender>https://stackoverflow.com/questions/17896050
复制相似问题