在子进程运行期间将python子进程的stderr写入日志文件而不会阻塞日志文件

时间:2020-05-12 10:56:22

标签: python logging multiprocessing subprocess python-multiprocessing

我有许多内核并行地独立处理问题,并在它们的单独操作失败时写入同一日志文件。我当前的实现是:

with open(f'log.txt', 'ab') as log:

    output = subprocess.call(args,
                             stderr=log)

以这种方式完成操作后,我认为log.txt文件在子进程期间保持打开状态,从而阻止了其他节点对其进行写入。这会使我的程序变慢。

相反,我想将stderr定向到某个变量,并且在子进程完成后,打开日志文件,编写stderr,然后关闭日志文件。

类似的东西:

output = subprocess.call(args,
                       stderr= log_message)

with open(f'log.txt', 'ab') as log:
    log.append(log_message)

这可能吗?

0 个答案:

没有答案