我正在尝试设置基于SCons的构建。
我使用的每个构建器都有多个可以使用sys.stdout.write()
在控制台中写入的操作。
问题是控制台输出混合在不同的作业之间。
是否有可用的修复程序?我希望在执行后将特定作业的所有控制台输出都放在同一个地方。
答案 0 :(得分:0)
您正尝试从多个并行运行的进程访问相同的资源(stdout
)...没有简单的解决方法(另请参阅xargs: losing output when redirecting stdout to a file in parallel mode)。
您可以尝试将每个中间操作的输出写入临时文件,然后使用最后一个操作最终将文件的完整和聚合输出写入stdout
。像这样,输出中有更大的连续blob文本...但是当中间操作通过抛出异常来杀死构建时,您可能也会丢失一些信息。然后你根本不会得到任何输出......这使得调试变得更加困难。