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モジュールを見てください)。