1

竜巻とnginxに取り組んでいるDjango Webサイトがあります。

このトルネード ランチャースクリプト(tornading.py)を使用しました。

次に、sys.stderr に情報を出力する python openid を使用しています。

その結果、IOError が発生します。

logging パッケージを使用してリダイレクトするにはどうすればよいですか?

私は考えました

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

また

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

しかし、それを解決する最善の方法は何ですか?

4

2 に答える 2

4

最善の方法は、openid ライブラリが stderr に出力せず、代わりにある種のログ API (例: logging モジュール) を使用することです。サードパーティのコードを変更することは長期的には良くないという thkala に同意します。そのため、修正してから、openid の作成者に修正を提供する必要があります。

オープンソース コミュニティを前進させるという目的のためには、それが最善の解決方法です。

于 2011-01-12T20:42:17.993 に答える
1

シェル リダイレクトの使用は、解決策というより回避策であり、スクリプトの起動方法によっては、常に可能であるとは限りません。

ただし、サードパーティのコードを変更する必要がないという明確な利点があります。たとえば、コードをアップストリームから最新バージョンに更新することを決定した場合、局所的な変更は、わずかなものであっても大きな問題になる可能性があります。

于 2011-01-12T20:18:51.450 に答える