Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每次循环迭代和线程睡眠都记录日志是不好的做法吗?_Java_Logging_Sonarqube_Thread Sleep - Fatal编程技术网

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

Java 每次循环迭代和线程睡眠都记录日志是不好的做法吗?,java,logging,sonarqube,thread-sleep,Java,Logging,Sonarqube,Thread Sleep,我想在特定的时间间隔内记录某些方法的进度(避免日志溢出)。我做了这个: while (!x.isFinished()) { LOG.info("some progress: {}", x.getStatus()); Thread.sleep(5000); } 据sonar所说,使用Thread.sleep(n)并将其标记为critical是一种不好的做法,我正在寻找更好、正确的方法。有什么我可以改进的吗 信息是: 在测试中使用Thread.sleep通常是个坏主意。它创造

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

while (!x.isFinished()) {
     LOG.info("some progress: {}", x.getStatus());
     Thread.sleep(5000); 
}
据sonar所说,使用
Thread.sleep(n)
并将其标记为critical是一种不好的做法,我正在寻找更好、正确的方法。有什么我可以改进的吗

信息是:

在测试中使用Thread.sleep通常是个坏主意。它创造了 根据环境的不同,脆性测试可能会不可预测地失败 (“在我的机器上传递!”)或加载。不要依赖时机

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

编辑2(根据@Wolf的回答进行澄清): 谢谢你的回复。它被用在多个地方,我想知道每次哪个地方是它。这是示例代码。更重要的是,它给了我一些知识,它需要多少时间来完成在它的生命和帮助诊断

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

让你的方法(或对象“x”)自己记录它的进度

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

让您的方法(或对象“x”)自己记录进度


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

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

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

sonarqube具体说了什么?因此,你真正的问题可能是“为什么sonarqube认为这是一个测试,而不是?”这当然是我的问题@Michael。哦,这个代码的文件路径是什么?sonarqube具体说了什么?可能是重复的,所以你真正的问题应该是“为什么sonarqube认为这是一个测试,而不是?”这当然是我的问题@Michael。OP,这个代码的文件路径是什么?