1

我有 Django 网站在龙卷风和 nginx 上工作。

我拿了这个龙卷风启动器脚本(tornading.py)

然后我使用 python openid 向 sys.stderr 输出一些信息。

结果我得到了 IOError。

如何使用日志记录包重定向它?

我想过

f = open("myfile.log", "w")
sys.stderr = f

或者

python tornado.py > /dev/null 2>&1

但是解决它的最佳方法是什么?

4

2 回答 2

4

最好的方法是如果 openid 库不打印到标准错误,而是使用某种日志记录 API(例如日志记录模块)。我同意 thkala 的观点,从长远来看修改第三方代码不好,所以你应该修复它,然后将修复提供给 openid 作者。

为了推进开源社区的发展,这是解决它的最佳方式。

于 2011-01-12T20:42:17.993 回答
1

使用 shell 重定向更多的是一种变通方法而不是一种解决方案,而且它可能并不总是可行的,具体取决于脚本的启动方式。

但是,它具有明显的优势,即您不必修改第三方代码。当您决定将上述代码从上游更新到其最新版本时,本地修改——即使是很小的修改——也可能成为一个主要问题。

于 2011-01-12T20:18:51.450 回答