我有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
但解决问题的最佳方法是什么?
答案 0 :(得分:4)
最好的方法是如果openid库没有打印到stderr,而是使用某种日志API(例如日志记录模块)。我同意thkala的观点,即从长远来看修改第三方代码并不好,所以你应该修复它,然后向openid作者提供修复。
为了推进开源社区的目标,这是解决它的最佳方式。
答案 1 :(得分:1)
使用shell重定向更多的是解决方案,而不是解决方案,并且可能并不总是可行,具体取决于脚本的启动方式。
然而,它具有明显的优势,您无需修改第三方代码。当你决定例如当地的修改 - 甚至是次要修改 - 都会成为一个主要问题。将上述代码从上游更新到最新版本。