特定のバックグラウンドファイルのエラーをチェックしたいが、標準エラーストリームはプログラムによってフォアグラウンドで制御されており、表示されます。私はlogging
モジュールを使用し、出力をファイルに書き込むことができます。私はどのようにこれを使用してすべての例外、エラー、およびトレースバックを記録できるのだろうと思っていました。Pythonのロギングモジュールを使用してすべての例外とエラーをログに記録
答えて
例外がプログラム内にスローされたことを記録するのは悪い考えです。Pythonは通常の制御フローに対しても例外を使用するためです。
したがって、はキャッチされていません。例外を記録してください。これを行うには、例外オブジェクトがあれば、簡単にロガーのexception()
methodを使用します。
try...except
ブロック内、またはすることで、カスタム例外ハンドラをインストールすることで、スクリプトのエントリポイントをラップするか、すべてのキャッチされない例外を処理するには
sys.excepthook()
を再割り当て:
import logging
import sys
logger = logging.getLogger('mylogger')
# Configure logger to write to a file...
def my_handler(type, value, tb):
logger.exception("Uncaught exception: {0}".format(str(value)))
# Install exception handler
sys.excepthook = my_handler
# Run your main script here:
if __name__ == '__main__':
main()
ありがとう!これはまさに私が必要としていたものです。 –
'sys___ excepthook __(type、value、tb)'を 'my_handler'に追加するのは良い考えではないので、例外でデフォルトアクションを処理できますか? – troyane
@Ferdinand Beyer:Neat。 str(value))、 'str(value)))'私の場合は 'ERROR - キャッチされない例外:IndexError:list範囲外のインデックスを作成し、何らかの理由で「なし」と表示します。私はどのようにして完全なトレースバックを得ることができますか? 'tb'はトレースバックオブジェクトであるようですが、' traceback.print_tb(tb) 'も' None'を吐き出します。 – bioslime
- 1. NLog LogEventInfoを使用して例外をログに記録する
- 2. 例外を処理してログに記録する例外
- 3. すべてのエラーをキャッチしてログに記録
- 4. Pythonロギングライブラリを使わずにすべてのエラーをログに記録
- 5. Spring MVCがすべての例外をログに記録しない
- 6. Pythonのロギングモジュール。すべてのデバッグをログに記録する方法はありますか?
- 7. マルチキャストOnExceptionAspectはバブル例外をログに記録しています
- 8. slf4jロガーを使用してすべてのHashMapキーと値をログに記録
- 9. NServiceBus例外がINFOメッセージとしてログに記録される
- 10. JavaScriptシングルトンを使用してエラーをログに記録する
- 11. Log4j2とJboss EAP 7:例外ログ記録
- 12. Log4netログに記録されたすべての例外に対してヘッダーとフッターを追加します。
- 13. PythonロギングモジュールがMacではログに記録されますが、Linuxではログに記録されません。
- 14. Pythonで例外フィルタをログに記録する
- 15. エラー/例外をログに記録する対象者
- 16. cassandra-python-driverですべてのクエリをログに記録
- 17. リソースが不足してログに記録できない例外
- 18. パラメータとして来る例外をログに記録してスローする例外メソッド
- 19. logging.infoを使用して例外をログに記録できないのはなぜですか?例えば
- 20. すべての種類のログではなく例外のみをログに記録
- 21. $ httpを使用して例外をログに記録するときの角度循環参照
- 22. Javaでcommons.loggingを使用して例外を記録する?
- 23. Androidアプリのクラッシュ例外をログに記録しない
- 24. SpringのSimpleMappingExceptionResolverの例外スタックトレースをログに記録する方法
- 25. MySQLストアドプロシージャの例外情報をログに記録する
- 26. すべてのココアイベントをログに記録しますか?
- 27. すべてのブラウザのDOM/JQueryイベントを記録またはログに記録
- 28. JavaScriptを使用してqualtricsのキープレスをログに記録
- 29. WCFサービスでIParameterInspectorを使用して、例外の場合でもWeb要求をログに記録する方法
- 30. serilogを使用してコンテキストデータを常にログに記録する
[でキャッチされない例外をログに記録する可能性のある重複Python](http://stackoverflow.com/questions/6234405/logging-uncaught-exceptions-in-python) –