2011-01-12 79 views
1

我有Django網站在龍捲風和nginx上工作。Python。將stderr重定向到日誌文件

我把這個龍捲風發射script(tornading.py)

然後我使用python的OpenID輸出一些信息在sys.stderr。

因此,我得到IOError。

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

我想過

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

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

但是,什麼是解決這個問題的最好方法?

+2

「最好的方式」是什麼意思? – thkala 2011-01-12 20:15:42

回答

4

最好的方法是如果openid庫不打印到stderr,而是使用某種記錄API(例如記錄模塊)。我同意特卡拉說長期修改第三方代碼不好,所以你應該修復它,然後向openid作者提供修補程序。

爲了推進開源社區的發展,這是解決它的最好方法。

1

使用shell重定向比解決方案更適合解決方案,它可能並不總是可行的,具體取決於腳本的啓動方式。

但是,它具有明顯的優勢,您不必修改第三方代碼。即使是次要的修改也可能成爲一個主要問題。將所述代碼更新爲來自上游的最新版本。

相關問題