2010-11-24 3 views
-2

私のpython/djangoサイトでは、数十回のエラー/ハートビート/予期しないイベントの状態を私に更新する "ダッシュボード"に。システムメールを管理者に置き換えるPython/Djangoの "ダッシュボード"を構築する必要があります

Djangoサイトで管理者アカウントにメールを送信することによって、現在追跡している「イベント」にはいくつかの種類があります:
1)通常起こるはずのことが間違っています。私たちは数時間おきに異なるサービスや他のマシンにファイルを同期させ、間違ったときにエラーメールを送信します。
2)実際に起こるべきことが起こるとき。時にはアイテム#1のイベントがとても恐ろしく失敗し、電子メールを送信しない(試してください:イベントの周りは常に動作するはずですが、crontabからものが削除される可能性があります。私がエラーメールを受け取らず、成功/ハートビートメールの欠如が起こったはずだったはずのことを私に知らせてくれる場所など)3)予期しないことが起こったとき。バックエンド操作の実行方法やこれらの前提条件のいずれかに違反した場合(たとえば、同じメールアドレスを持つ2人のユーザーが見つかった場合)には、多くの前提があります。これらのイベントは、必ずしもエラーではなく、調査する警告のようなものです。


だから私はある(私は週からの電子メールの何百もの送信を停止することができ、私は簡単に私の活動のこれらのタイプのすべての鳥瞰図を与えることのpython /ジャンゴから更新できるダッシュボードを構築したいです既に管理不能です。)

+0

質問を見つけるためのリンクが開かれていて、残念です。 – aukaost

+0

とあなたの質問は? – Spacedman

+0

あなたは電子メールを受信して​​いるのですか、それとも誰かに送信していますか? –

答えて

3

ウェブページに出力する基本的なログシステムを作成したいと思うように聞こえます。

systemeventsという単純なアプリを書くと、サイトで何か起きるたびにEventというレコードが作成されます。そして、あなたはかなり簡単にこれらのイベントを一覧表示するビューを作成することができます

from systemevents.signals import record_event 

... 

try: 
    # code goes here 
except Exception, inst: 
    record_event("Error occurred while taunting %s: %s" % (obj, inst,), type="Error") 
else: 
    record_event("Successfully taunted %s" % (obj,), type="Success") 

:どこでも、サイトの残りの部分であなたのような何かをコーディングすることができるようにあなたは、信号のフックを追加したいです。

しかし、これは非常に問題の多い複雑さのレイヤーを追加していることに注意してください。エラーがデータベースにある場合はどうなりますか?その後、エラーイベントを記録しようとするたびに、別のエラーが発生します。

テキストベースのログファイルを作成するための組み込みログシステムのようなものを使用して、そのテキストファイルをインポートしていくことができます。

もう1つヒント:Djangoが例外を処理する方法を変更するには、custom view for 500 errorsと記述する必要があります。このコードのどれが正しいかテストされていないことを

from django.views.defaults import server_error 
def custom_error_view(request) 
    try: 
     import sys 
     type, value, tb = sys.exc_info()  
     error_message = "" # create an error message from the values above 
     record_event("Error occurred: %s" % (error_message,), type="Error") 
    except Exception: 
     pass 
    return server_error(request) 

注:systemeventsを使用している場合、あなたは次のように記述します。それはちょうどガイドとして意味されています。

関連する問題