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.HTTPError
500 Internal Server Error 応答になるため、WSGI サーバーがクラッシュすることはありません。
このことから判断すると、これらException
の s をキャッチして、関係者に電子メールを送信するコードを作成する必要があります。コードがtry
ブロックに入り、例外のコードがいくつかあり、次に、目的の電子メールを送信するbottle.HTTPError
他のすべての をキャッチするコードがあります。Exception