2011-08-10 8 views
2

これは可能かどうかと、エンタープライズライブラリログを使用してこの機能を実装する方法を理解しようとしています。私の現在のコードではエンタープライズライブラリ5 LogEntryに追加のコンテキスト情報を設定する

私はこのような例外を処理しています:

exceptionManager.HandleException(ex, "LogException"); 

私は何をしたいが、私は拡張するために必要なもの、例えば、アセンブリバージョンのために、この例外をログに記録しますが、追加のコンテキスト情報を収集することです\実装しますこの追加のコンテキスト情報を記録する

答えて

1

おそらく最も簡単な方法は、例外のDataプロパティを使用して、追加のコンテキスト情報を添付することです。エンタープライズライブラリは、すべてのData要素を拡張プロパティにマップします。

try 
{ 
    DoSomething(); 
} 
catch (Exception ex) 
{ 
    ex.Data["ExecutingAssembly"] = Assembly.GetExecutingAssembly().FullName; 

    bool rethrow = exceptionManager.HandleException(ex, "LogException"); 

    if (rethrow) 
    { 
     throw; 
    } 
} 

次にログテンプレートをログに記録する設定の拡張特性を有していることを確認してください。

Extended Properties: {dictionary({key} - {value} 
+0

私はすべての私のtry-catchブロックを変更する必要はありません。 –

関連する問題