3

EnterpriseLibrary5のLoggingApplicationBlockを使用して、フラットファイルとイベントログにログインしようとしています。私の構成は次のようになります。

ここに画像の説明を入力してください

私はこのコードを使用してログに書き込みます:

Logger.Write("message", "General1");
Logger.Write("message", "General2");

問題は、フラットファイルのログは正常に取得されますが、イベントログにログエントリが表示されないことです。「エンタープライズライブラリログ」をフィルタリングするためのカスタムビューを作成しました。

Ent lib 5を使用してイベントビューアログにエントリを作成するにはどうすればよいですか?

ありがとう。

ポン。

4

2 に答える 2

3

ここで発生する可能性があるのは次の 2 つだと思います。

  1. ロギングは機能していますが、カスタム フィルタが正しくありません
  2. ロギングが機能していません

楽観的になり、ロギングが機能していると仮定しましょう。

ロギングは機能しています

MyLog「エンタープライズ ライブラリ ログ」のソースで呼び出されるイベント ログにログを記録するように EventLogTraceListener を構成しました。カスタム フィルターがログでフィルター処理するように構成されていて、MyLog を検索していない可能性がありますか? フィルターを再確認し、[アプリケーションとサービスのログ] の下に MyLog という名前のログが実際にあることも確認します。

しかし、私が推測した場合、それはおそらく問題ではありません。

ロギングが機能しない

ロギングが機能していないと仮定しましょう。機能しない理由として最も可能性が高いのは、イベント ログを作成する権限がないことです。また、Logging Errors & Warnings セクションがリスナーで構成されていないことにも気付きました。Logging Errors & Warnings をセットアップしてトレース リスナーを使用することは常に良い考えです (私はフラット ファイル トレース リスナーを好みます。これは最も単純な方法の 1 つであり、失敗する可能性が少ないからです)。
したがって、あなたの場合、既に設定した「フラット ファイル トレース リスナー」を使用するように設定します。

 <specialSources>
   <allEvents switchValue="All" name="All Events" />
   <notProcessed switchValue="All" name="Unprocessed Category" />
   <errors switchValue="All" name="Logging Errors &amp; Warnings">
    <listeners>
     <add name="Flat File Trace Listener" />
    </listeners>
   </errors>
  </specialSources>

プログラムを再実行すると、consoletrace.log にエラー メッセージが表示されるはずです。

アクセス許可が問題である場合、通常の解決策は、適切なアクセス許可を持つアカウントを使用して、インストール中にイベント ログとそのソースを作成することです。たとえば、管理者としてメッセージを記録して、ログとカテゴリを設定します。

于 2011-09-23T15:23:02.713 に答える
0

これは古い質問ですが、イベントログを使用するには、最初にイベントソースを作成する必要があります(管理者権限を持つユーザーが作成する必要があります)。さらに、これをWebサイト内で使用する場合は、NETWORKSERVICEアカウントにイベントログへの書き込みアクセスを許可する必要があります。このサイトが役立ちます:http: //msdn.microsoft.com/en-us/library/ms998320.aspx

于 2012-08-01T14:56:37.853 に答える