Pythonで500エラーが発生したときに管理者にメールを送信するにはどうすればよいですか.
私が使用している Web フレームワークは「ボトル」です。
次のように、@error(code)デコレータを使用してエラー処理ページを定義するだけです。
from bottle import run, error, route
@error(500)
def handle_500_error(code):
# add mail send code here
return "Error message here"
@route("/test_500")
def cause_error():
raise Exception
run()
に移動し/test_500て実際の動作を確認してください
もちろん、他のページと同じように、エラー ページのテンプレートを使用できます。エラー ハンドラーを使用しているときに、組み込みのボトル エラー ページを取得する方法があるかどうかはわかりません。
編集:
どうやら、最新のボトル v0.8 を使用している場合、@errorデコレータを適用する関数は、エラー コードではなくbottle.HTTPError、例外とトレースバックを含むオブジェクトをパラメータとして受け取ります。
または、ここで説明されているように に設定bottle.app().catchallして例外を処理しないようにボトルを設定し、適切な WSGI ミドルウェアを使用してそれらを処理し、電子メールを送信することもできます (たとえば、このようなもの)。False
以下は、ボトルのドキュメントからの行です。
以外の未処理の例外はすべて
bottle.HTTPError500 Internal Server Error 応答になるため、WSGI サーバーがクラッシュすることはありません。
このことから判断すると、これらExceptionの s をキャッチして、関係者に電子メールを送信するコードを作成する必要があります。コードがtryブロックに入り、例外のコードがいくつかあり、次に、目的の電子メールを送信するbottle.HTTPError他のすべての をキャッチするコードがあります。Exception