背景
我有一个非常大的Python应用程序,它启动命令行实用程序来获取所需的数据片段。目前,我只是将Python启动器脚本重定向到日志文件,这样我就可以得到所有print()
输出以及命令行实用程序的输出,例如:
python -m launcher.py &> /root/out.log
问题
疑问
是否有一种方法可以全局重定向所有的 stdout
/stderr
文本到我的记录函数中,而不必重新编写或修改启动这些命令行工具的代码?我试过设置以下代码,但没有效果:
sys.stderr.write = lambda s: logger.error(s)
然而,它会出现“
sys.stderr.write
只读”的错误。