我正在尝试查找如何每隔几秒记录一次调试消息以避免日志垃圾邮件。如何避免在Java中每隔几秒记录一次垃圾邮件
说,我有以下功能。
public void doSomething() {
// log is a logger object from org.slf4j
log.debug("doSomething: Enter");
// do some task
log.debug("doSomething: Exit");
return;
}
该功能获取循环
for (int i = 0; i < 100; i++) {
doSomething();
thread.sleep(100); // sleep for 100 milli seconds
}
我不希望得到打印的日志信息100次叫100倍。我希望它每秒打印一次或类似的东西。
有什么可以控制的吗?我可以考虑将“迭代i”传递给doSomething(),并且只在我进行某些迭代时才打印日志。
喜欢的东西,
public void doSomething(int i) {
if (i == 25) {
// log is a logger object from org.slf4j
log.debug("doSomething: Enter");
}
// do some task
if (i == 25) {
// log is a logger object from org.slf4j
log.debug("doSomething: Exit");
}
return;
}
for (int i = 0; i < 100; i++) {
doSomething(i);
thread.sleep(100); // sleep for 100 milli seconds
}
有没有更好的方式来做到这一点?谢谢!
而不是将'i'传入函数,那么在循环中进行日志记录呢? – nickb
可能有一些其他调用doSomething()的函数。所以我认为做功能的日志记录更好 – SyncMaster
可能重复[如何限制日志频率?](http://stackoverflow.com/questions/10212644/how-to-limit-logging-frequency) – jmehrens