Python を使用してデーモン サーバーを作成しています。たとえば、変数の型が正しくないなど、Python の実行時エラーが発生することがあります。そのエラーによってプロセスが終了することはありません。
このようなランタイム エラーをログ ファイルにリダイレクトすることはできますか?
Python を使用してデーモン サーバーを作成しています。たとえば、変数の型が正しくないなど、Python の実行時エラーが発生することがあります。そのエラーによってプロセスが終了することはありません。
このようなランタイム エラーをログ ファイルにリダイレクトすることはできますか?
2つの質問をしているようです。
exception
プロセスがエラーで終了しないようにするには、を使用して発生したすべての をキャッチする必要がありますtry...except...finally
。
また、すべての出力をログにリダイレクトしたいと考えています。logging
幸いなことに、Python には便利な包括的なモジュールが用意されています。
あなたの喜びと喜びの例:
#!/usr/bin/env python
import logging
logging.basicConfig(filename='warning.log', level=logging.WARNING)
try:
1/0
except ZeroDivisionError, e:
logging.warning('The following error occurred, yet I shall carry on regardless: %s', e)
これは優雅に放出します:
% cat warning.log
WARNING:root:The following error occurred, yet I shall carry on regardless: integer division or modulo by zero
traceback
モジュールを見てください。をキャッチするRuntimeError
と、それをログに書き込むことができます (そのlogging
モジュールを見てください)。