1

eventLogオブジェクトを作成したWindowsサービスアプリがあります。

eventLog.Log = "MyLog"; // I'm not really sure what value to choose here
eventLog.Source = this.ServiceName;

アプリをインストールし、VS2012で次の場所に移動します。

ServerExplorer->サーバー->myDevice->EventLogs-> MyLog

しかし、私はこのファイルを読むことができません。私のアプリではFileSystemWatcherを実装し、あるイベントではログファイルに情報を書き込みます。この情報にアクセスするにはどうすればよいですか(デバッグに必要)。

4

1 に答える 1

2

移動:

コンポーネントサービス>イベントビューア>アプリケーションとサービス>MyLog。

コンポーネントサービスは、検索領域の[開始]に入力するか、次の場所に移動して見つけることができます。

コントロールパネルで、ビューを小さなアイコンに変更し、[管理ツール]を選択します。

ノート:

イベントログのソースとログ名を以下のように変更する必要があると思います

eventLog.Source = "ServiceNameSource";
eventLog.Log = "ServiceNameLog"

編集:

カスタムソースを使用する場合は、次のようにします。

最初のオプション:アプリケーションを管理者として実行する必要があります。そうしないと、アプリケーションがセキュリティログを検索できなくなり、SecurityExceptionがスローされるためです。

        EventLog testEventLog = this.EventLog;
        //Or if you are not using windows service, then:
        //EventLog testEventLog = new EventLog();
        testEventLog.Source = "TestServiceSource";
        testEventLog.Log = "TestServiceLog";

        //If log source doesn't exists create new one
        if (!System.Diagnostics.EventLog.SourceExists(testEventLog.Source))
        {
            System.Diagnostics.EventLog.CreateEventSource(testEventLog.Source, testEventLog.Log);
        }

2番目のオプション:アプリケーションを管理者として実行する必要はありません。ただし、セキュリティログは検索されません。

        EventLog testEventLog = this.EventLog;
        //Or if you are not using windows service, then:
        //EventLog testEventLog = new EventLog();
        testEventLog.Source = "TestServiceSource";
        testEventLog.Log = "TestServiceLog";

        bool eventSourceExists = false;
        try
        {
            eventSourceExists = System.Diagnostics.EventLog.SourceExists(testEventLog.Source);
        }
        catch(System.Security.SecurityException)
        {           
            eventSourceExists = fasle;
        }

        //If log source doesn't exists create new one
        if (!eventSourceExists)
        {
            System.Diagnostics.EventLog.CreateEventSource(testEventLog.Source, testEventLog.Log);
        }
于 2013-02-22T13:58:18.393 に答える