0

データベースにデータを記録するようにエンタープライズ ライブラリを構成しましたが、すべて正常に動作します。現在のログ情報は次のようになります。

タイムスタンプ: 2013 年 6 月 19 日 7:10:01 AM

カテゴリ: eConnect 例外

優先度: 0

イベント ID: 100

重大度: エラー

タイトル:エンタープライズ ライブラリの例外処理

マシン: ISDC30517

アプリ ドメイン: /LM/W3SVC/23/ROOT-4-130160992152908413

プロセス ID: 8808

プロセス名: C:\Program Files (x86)\IIS Express\iisexpress.exe

スレッド名:

Win32 スレッド ID:8952

拡張プロパティ:

これは、現時点で私の例外を記録するコードです:

public void LogException(Exception exception)
{
   ExceptionPolicy.HandleException(exception, "GeneralExceptionPolicy");
}

Enterprise Library のデータベース テーブルを生成してデータをログに記録するために実行した既定のスクリプトは、新しい列について言及したプロパティごとに生成されます。

現在、追加情報も追加できるようにしたいと考えています。現時点では、この例外を取得した現在のユーザーのユーザー名を追加することを考えています。

たくさん検索しましたが、これに関して役立つ情報が見つからないようです。ログに記録されたメッセージに追加情報を追加するにはどうすればよいですか?

4

1 に答える 1

2

追加情報を Exception.Data プロパティに追加できます。これらの値は、LogEntry の ExtendedProperties に追加されます。その後、formatter を構成して、formattedMessage 文字列に特定の拡張プロパティ キーを出力できます。参照: Exception.Data 情報が EntLib ログにありません

これがおそらく最も簡単な方法ですが、そうすると情報がデータベース テーブルの文字列に埋もれてしまいます。

もう 1 つの方法は、データをデータベースに直接追加することです。これには、すぐに使えるデータベース スキーマとストアド プロシージャへの変更、およびカスタム トレース リスナーの作成が含まれます。Enterprise Library Sample Projectsページで 2 つの異なるデザインを見つけることができます。

  • カスタム例外ハンドラーを使用した拡張プロパティ トレース リスナーには、拡張プロパティを別の拡張プロパティ テーブルに記録するカスタム トレース リスナーが含まれており、すべての拡張プロパティを書き込むことができます。

  • カスタム データベース トレース リスナーのサンプルでは、​​CustomLogEntry を使用して、いくつかの CustomData を Log テーブルのカスタム データベース列に書き込みます。

于 2013-07-08T16:19:18.180 に答える