System.Diagnostics.EventLog
経由で.netのWindowsイベントログに基本ログを設定しようとしていますが、ログに実際に書き込まれたイベントは表示されません。次のコードを考えてみましょう:カスタムWindowsイベントログに書き込む方法を教えてください。
// Elsewhere in the class
private static readonly string EventLogName = "LogName";
private static readonly string EventLogSource = "AppName";
// In the only function that does something
if (!EventLog.Exists(EventLogName))
{
EventLog.CreateEventSource(EventLogSource, EventLogName);
return;
}
else
{
Trace.TraceInformation("Attempting log");
// This doesn't write anything
EventLog.WriteEntry(EventLogSource,
"StaticWriteEntry",
EventLogEntryType.Error);
// Neither does this
using (var log = new EventLog())
{
log.Log = EventLogName;
log.Source = EventLogSource;
log.WriteEntry("WriteEntry?", EventLogEntryType.Error);
}
}
return;
初めてログを作成し、MSDNサンプルごとにアプリケーションを終了します。このログの作成は、最終的にセットアップに入ります。その後の実行では、作成されたイベントログにメッセージを記録しようとします。
例外はスローされません。ログが正常に作成されたように見えます(Windowsイベントビューアで開くことができます)。セキュリティログに関連するものは記録されません。
WriteEntry()
を介してメッセージが記録されていません。名前が一致していないため、アプリケーションログに配置されません。この特定のケースでは、UACを無効にした管理者アカウントでServer2008を実行しています。 (これは不幸な環境を必要とするより大きなレガシー製品の小さな部分です)何が間違っているのですか?
(私は私のApp.configファイルでEventLogTraceListener
を使用したいので、私はこれをやっている、それは何も書いていなかったので、これはその問題のトラブルシューティングの一部です。)
ありがとう、これは私が何かを記録し、ソースを変更し、古いソースを削除し、新しいソースに何も書き込まれていないことを確認しました。 –
素晴らしい、嬉しい助けて! :)私はドキュメントのラインを見つけるのにどれくらいの時間がかかったか恥ずかしいです。 :) –