蟒蛇。将stderr重定向到日志文件

时间:2011-01-12 20:09:37

标签: python django stderr tornado

我有Django网站正在研究龙卷风和nginx。

我拿了这个龙卷风发射器script(tornading.py)

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

结果我得到了IOError。

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

我想过

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

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

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

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

然而,它具有明显的优势,您无需修改​​第三方代码。当你决定例如当地的修改 - 甚至是次要修改 - 都会成为一个主要问题。将上述代码从上游更新到最新版本。