我有 Django 网站在龙卷风和 nginx 上工作。
我拿了这个龙卷风启动器脚本(tornading.py)
然后我使用 python openid 向 sys.stderr 输出一些信息。
结果我得到了 IOError。
如何使用日志记录包重定向它?
我想过
f = open("myfile.log", "w")
sys.stderr = f
或者
python tornado.py > /dev/null 2>&1
但是解决它的最佳方法是什么?
最好的方法是如果 openid 库不打印到标准错误,而是使用某种日志记录 API(例如日志记录模块)。我同意 thkala 的观点,从长远来看修改第三方代码不好,所以你应该修复它,然后将修复提供给 openid 作者。
为了推进开源社区的发展,这是解决它的最佳方式。
使用 shell 重定向更多的是一种变通方法而不是一种解决方案,而且它可能并不总是可行的,具体取决于脚本的启动方式。
但是,它具有明显的优势,即您不必修改第三方代码。当您决定将上述代码从上游更新到其最新版本时,本地修改——即使是很小的修改——也可能成为一个主要问题。