将标准注销到气流中的文件

Chr*_*ris 5 stdout airflow

我想将标准从我的 dag 中与气流生成的日志分开保存。

我的脚本打印到标准输出,我想在每次运行时将其(并且仅是)捕获到指定的日志文件中。我试过了

logfile = 'mylog_01.log'

myfunc = def()...

log = open(logfile, "ab")
sys.stdout = log

print_params = PythonOperator(task_id="print_params",
                          python_callable=myfunc,
                          provide_context=True,
                          dag=dag)
Run Code Online (Sandbox Code Playgroud)

...但 std.out 在每个 PythonOperator 中被重置。我如何控制标准输出在所有 python 运算符中打印到的位置?

此外,我在脚本中使用了数百个打印语句,因此在这种情况下修改每个语句是不切实际的。