我有一个测试程序(不是我写的),它给出了一个非常奇怪的错误,这只在某些时候发生。在程序结束时,使用输出包含测试报告的字符串
logger.warn(reportString);
从 1/10 到 1/3 的任何尝试(它会有所不同)都不会显示此字符串,而是显示之前的所有内容。在此之前,我添加了这一行以确保始终正确创建字符串,这是因为每次都给出相同的长度。
logger.info("Length: " + reportString.length());
为了进行实验,我在之后添加了另一条日志记录行,所以程序的结尾现在看起来像这样:
logger.info("Length: " + reportString.length());
logger.warn(reportString);
logger.info("REACHED END OF PROGRAM");
执行此操作时,reportString 似乎总是被打印/记录,但“REACHED END OF PROGRAM”字符串仅在大约 50% 的时间被打印/记录。也许这与我的 Windows 命令提示符有关?我知道这是一个非常模糊的问题,但如果有人有任何想法,他们将不胜感激。