1

アプリケーションで未処理の例外をキャッチするために Elmah を使用しています。Elmah がログ エントリを書き込むときにカスタム コードを実行したいと考えています。

Elmah.SqlErrorLog から派生したカスタム ErrorLog を作成し、Web 構成ファイルに ErrorLog を設定しました。

namespace Test.Logging

{ public class MySqlErrorLog : Elmah.SqlErrorLog { public MySqlErrorLog(string connectionString) : base(connectionString) {

    }

    public override string Log(Elmah.Error error)
    {
        return base.Log(error);

        //custom code
    }
}

}

<errorLog type="Test.Logging.MySqlErrorLog, Test" connectionStringName="elmah-sqlserver" />

良いようですが、何も起こりませんでした。データベースにログ レコードがありません。

誰でも私を助けることができますか?

ありがとうございます!

4

1 に答える 1

1

これを修正したかどうかはわかりません。同様の問題を解決しようとしているときに、あなたの投稿に出くわしました。コンストラクターが不足していることが判明しました。あなたの場合、名前空間が間違っていると思います。名前空間は Test.Logging であり、Test.Logging ではありません。

したがって、web.config の行は次のようになります。

<errorLog type="Test.Logging.MySqlErrorLog, Test.Logging" connectionStringName="elmah-sqlserver" />
于 2013-11-01T12:45:43.600 に答える