2009-04-02 12 views
1

WCF Webサービスを作成しています。私のWebでスローされた例外を記録するためのCastleインターセプタのメカニズムを使用するためのエレガントな(アスペクト指向の)方法?私はIInterceptorのインテーフェイスについて知っていますが、例外情報が見つかりませんでした。WCFでスローされた例外をログに記録するためのCastleの使用

私はCastle, AOP and Logging in .NETを見ましたが、メソッドのパラメータのみをカバーしています。

これを行うには、より良い(WCFまたはキャッスルの)メカニズムがありますか?私はロギングにlog4netを使用しています。

更新:私はWCFのログ機能について知っていますが、私はWCF環境だけでなく、一般的なソリューションを探していました。

ありがとうございます。

答えて

1

WCFトレースとログのビルドを使用する必要があります。次に、WCFトレースビューアを使用して、サービスとクライアントからのログをまとめて、完全なメッセージフローを確認することができます。

http://www.devx.com/dotnet/Article/37389/0/page/6

WCFでIErrorHandlerインターフェイスがあります。ここ

public interface IErrorHandler 
{ 
    bool HandleError(Exception error, MessageFault fault); 
    void ProvideFault(Exception error, ref MessageFault fault, ref string faultAction); 
} 

詳細:http://www.extremeexperts.com/Net/Articles/ExceptionHandlingInWCF.aspx

+0

[OK]を[OK]を、ただし質問を一般化します。 WCF以外の環境ではどうしますか? –

+0

私は自分の答えを更新しました。 –

2

あなたは、一般的に城インターセプタを使用したい場合、あなたはこのような何かを行うことができますが。

public void Intercept(IInvocation invocation) 
{ 
    //do some preprocessing here if needed 
    try 
    { 
     invocation.Proceed() 
    } 
    catch(Exception e) 
    { 
     LogException(e); 
     throw; 
    } 
    finally 
    { 
     //do some postprocessing jf needed 
    } 
} 
関連する問題