2014-01-17 14 views
5

Djangoプロジェクトにキャッチされない例外がある場合、ログには単純な「HTTP 500」メッセージしか表示されません。 HTTPレスポンスには完全なスタックトレースがHTMLとして含まれていますが、ウェブブラウザで使用されていないWebサービスを開発しているときにはあまり役に立ちません。未知の例外の完全なスタックトレースをDjangoログに表示させるにはどうすればよいですか?未知の例外をDjangoログに表示する方法

"got_request_exception"イベントの "process_exception"メソッドとカスタムシグナルハンドラでカスタムミドルウェアをインストールしようとしましたが、これらのハンドラのどちらも呼び出されませんでした。

私はDjango 1.6.1とTastypie 0.11.0を使用していますが、デバッグモードで動作しています。設定Django設定で

答えて

6

これらのオプションの両方を設定する
DEBUG_PROPAGATE_EXCEPTIONS = True 
TASTYPIE_FULL_DEBUG = True 

はTastypie例外が上向きに伝播することができます。

https://docs.djangoproject.com/en/1.6/ref/settings/#debug-propagate-exceptions
http://django-tastypie.readthedocs.org/en/latest/settings.html#tastypie-full-debug

+0

あまりにも生産にこれらのオプションを有効にすることをお勧めしますか? – Jayabal

+0

いいえ、その良い練習は、それらの設定は開発にのみ使用する必要があります。 DEBUGがFalse(プロダクション版)の場合、Djangoはコードで未処理の例外が発生するたびに、ADMINS設定にリストされているユーザーにメールを送ります。しかし、プロダクションで例外監視を処理するより良い方法は、https://rollbar.comやhttps://getsentry.com/のようなものを使用することです。 – bensentropy

関連する問題