记录每次循环迭代和线程睡眠是不好的做法吗?

Logging with each loop iteration and thread-sleep is bad-practice?

我想在特定时间间隔内记录某些方法的进度(避免日志溢出)。我做了这个:

while (!x.isFinished()) {
     LOG.info("some progress: {}", x.getStatus());
     Thread.sleep(5000); 
}

就声纳而言,使用 Thread.sleep(n) 并将其标记为关键是不好的做法,我正在寻找更好、更正确的方法来实现它。有什么我可以改进的地方吗?

消息是:

Using Thread.sleep in a test is just generally a bad idea. It creates brittle tests that can fail unpredictably depending on environment ("Passes on my machine!") or load. Don't rely on timing

编辑: 这不是重复,也不是测试。我想在每个 x 间隔的工作周期中记录时间。

编辑 2(根据@Wolf S 的回答澄清): 感谢您的回复。它在多个地方使用,我想每次都知道是哪个地方。这是示例代码。更重要的是,它让我知道了它在生命周期中需要多少时间才能完成并帮助诊断。

我只是想知道是否有一些严格的方法可以做到这一点或忽略声纳。

让您的方法(或对象 'x')自行记录其进度。

或者让它定期调用一些回调方法来报告进度,您可以使用它来注入日志输出(或更新进度条或任何您想要的)。

如果这不是测试,那么您的代码就没有问题。 (可能取决于代码的其余部分,但一般来说使用 Thread.sleep 并不是一个坏主意)