python - 将子进程 stdout 和 stderr 重定向到记录器
问题描述
我正在编写一个 Python 3 应用程序,我想在其中将我的消息记录到屏幕以及一个日志文件。我已经使用日志处理程序进行了设置。
但是,此外,我还想将我在脚本中进行的任何调用的输出stdout
和输出传送到相同的日志处理程序(即屏幕和日志文件)。stderr
subprocess
我可以stdout=subprocess.PIPE, stderr=subprocess.STDOUT
先在一个变量中捕获输出,然后再在该变量中捕获log
。但这意味着在该过程完成之前,屏幕上不会显示任何内容。但是,我希望输出在屏幕和日志文件中“流式传输”,因为进程正在运行。
无论如何要在子进程输出和实时建立的日志处理程序之间建立这种连接?