0

C# で Windows イベント ログの「エラー」エントリ メッセージを読み込もうとしています。

  foreach (EventLogEntry log in eventLog.Entries)
  {
    if (log.EntryType.ToString() == "Error") 
    {
        Console.WriteLine( log.Message);
    }
  }

出力は「次のエラーのため、XYZ サービスを開始できませんでした: \r\n%%2」です。

私が探しているエントリは

「次のエラーのため、XYZ サービスを開始できませんでした:\r\n指定されたファイルが見つかりません。」

ID から適切なエラー メッセージにどのように変換しますか?

どうもありがとう、KG

4

1 に答える 1

0

イベント ログ メッセージは、次のようなテンプレートです。

The %1 service failed to start due to the following error: \r\n%2

イベント ログ エントリには、メッセージ番号と、%1、%2 などを置き換える置換文字列が含まれています。

.NetEventLogEntry.Messageプロパティが代入を行うため、%1、%2 などは表示されません。

おそらく、十分な置換文字列がない (EventLogEntry.ReplacementStringsプロパティを確認する) か、書式文字列の形式が正しくない (「%」が間違っているように見える) ため、置換が失敗しているようです。ただし、ログ エントリがサービス コントロール マネージャーからのものである場合、これらの説明はどちらも妥当とは思えません。

于 2012-09-21T10:43:11.183 に答える