2011-07-12 16 views
2

エルマーロガーはどのように使用できますか? 私はErrorsControllerを持っていると私はexcpetionが不明な場合にのみ、それをログに記録必要があります:私はElmahAttributesを実装していませんでしたマニュアルElmahロギング

Elmah.ErrorSignal.FromCurrentContext().Raise(new Exception(string.Format("{0}, {1}", controller, action), exception)); 

、ELMAHは唯一のweb.configファイルに追加しました。 どうすればいいですか?私はすべての着信エラーをフィルタリングするerrorFilterを使用する考えがありますが、それはあまり良くありません。

UPD

は、私はすべてのエラーを無視するフィルタの追加があります。

<errorFilter> 
    <ignoreAll> 
     <regex binding="Context.Request.Url" pattern="." /> 
    </ignoreAll> 
</errorFilter> 

をそれは私が手動でログインするために呼び出すさえあること、絶対にすべてを無視します。

答えて

3

私はElmah.ErrorSignal.FromCurrentContext().Raise()を使用しているときにエラーを取得するプロセスを「エミュレート」し、このエラーがフィルタに該当するため、フィルタでエラーを無視する理由を理解しています。代わりに、我々はログにエラーを追加するには、ELMAHロガーメソッドを使用する必要があり、この方法の :

Elmah.ErrorLog.GetDefault(System.Web.HttpContext.Current).Log() 

このメソッドは、ログインして、以下のフィルタ処理にエラーを追加するには、他のすべてを無視します:すべてのこの私の後

<errorFilter> 
    <test> 
    <regex binding="Context.Request.Url" pattern="." /> 
    </test> 
</errorFilter> 

1つの質問があります - <errorFilter>内の名前タグはtestしかありませんか?

0

Web.Configファイルで設定できます。 Check this wiki

+0

申し訳ありませんが、この記事ではフィルタリングについて、私はすべてのエラーを無視する別の方法を探したいと言いました。可能であれば、もちろん。 – Boo

+0

@Booそれ以外の例外は無視されます – Eranga

+0

このフィルターで私を助けてくれますか?私は試してみますが、HttpExceptionsにはHttpStatusCodeしかありません。どのようにすべてのエラーをフィルタリングできますか? – Boo