Java 如何使用log4j记录每20次发生的事件?
我有一个循环。我希望每20(100)次执行都能看到一些日志。到目前为止,我有一些相当复杂的代码来实现这一点Java 如何使用log4j记录每20次发生的事件?,java,logging,log4j,Java,Logging,Log4j,我有一个循环。我希望每20(100)次执行都能看到一些日志。到目前为止,我有一些相当复杂的代码来实现这一点 for( int i = 0; i < aValues.length; ++i ) { if( c_LOG.isTraceEnabled() && ( ( i % 20 ) == 0 ) ) { c_LOG.trace( "Converted item (" + i + ") " ); } ..... } for(
for( int i = 0; i < aValues.length; ++i )
{
if( c_LOG.isTraceEnabled() && ( ( i % 20 ) == 0 ) )
{
c_LOG.trace( "Converted item (" + i + ") " );
}
.....
}
for(int i=0;i
这段代码符合我的要求,但代码很长(4行),类似的代码出现过很多次。我无法将其打包到方法中,因为这样会在日志输出中扭曲方法名称。(
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:MM:ss}%p%c{3}:(%M%L)%M%n
)有什么好办法解决这个问题吗 最简单的解决方案就是重构:
for (int i = 0; i < aValues.length; ++i) {
if (shouldLog(i)) {
c_LOG.trace("Converted item (" + i + ")");
}
....
}
....
public boolean shouldLog(int n) {
return shouldLog(n, 20);
}
public boolean shouldLog(int n, int mod) {
return c_LOG.isTraceEnabled() && ((n % mod) == 0);
}
for(int i=0;i
请参阅。这基本上就是把状态测试作为一种新的方法提取出来。现在还不错。谢谢