方法 : アプリケーションをイベント ログ エントリのソースとして追加する
更新 : 2007 年 11 月
コンポーネントでイベント ログにエントリを書き込む場合は、まずイベントの有効なソースとして、イベント ログにコンポーネントを登録する必要があります。そのためには、CreateEventSource メソッドを使用して、イベント ログに対してコンポーネントを一意に識別する文字列を指定します。ログ エントリを書き込むと、システムはエントリを配置する適切なログを見つけるために指定したソースを使用します。EventLog コンポーネントのインスタンスを使って書き込むことができるログは、一度に 1 つだけです。
メモ : |
---|
既定では、コンポーネントを有効なソースとして登録していない状態でエントリを書き込もうとすると、ソースが自動的にイベント ログに登録され、Source プロパティの値がソース文字列として使用されます。通常は、アプリケーションのインストール中に新しいイベント ソースを作成します。これにより、オペレーティング システムが登録済みのイベント ソースとその設定の一覧を更新する時間ができます。オペレーティング システムがイベント ソースの一覧を更新しないうちに、新しいソースを使用してイベントを書き込もうとすると、書き込み操作が失敗します。インストール中にソースを作成しない場合は、最初の書き込み操作よりもかなり前の時点で (アプリケーションの初期化時など)、ソースを作成してください。この方法を採用する場合は、初期化コードを必ずコンピュータの管理者権限で実行します。新しいイベント ソースを作成するには管理者権限が必要です。 |
存在しないログの名前を CreateEventSource メソッドで指定した場合は、初めてログにエントリを書き込むときに、その名前を使用して新しいカスタム イベント ログが自動的に作成されます。詳細については、「方法 : カスタム イベント ログを作成または削除する」を参照してください。
イベント カテゴリとメッセージ文字列についてのローカライズされたリソースを含むイベント ソースを登録できます。アプリケーションでイベント ログ エントリを書き込むときには、実際の文字列値を指定する代わりに、リソース識別子を使用できます。リソース ファイルを使用してソースを設定する方法の詳細については、EventLogInstaller クラスと EventSourceCreationData クラスの説明を参照してください。
イベント ソースとして、コンポーネントを設定するには
ローカル コンピュータでエントリを作成するには、CreateEventSource メソッドを呼び出し、パラメータにソース文字列とログ名を指定します。
メモ : ログ名として NULL (" ") を指定した場合は、既定値の Application に設定されます。
次の例は、独自の MyApp1 コンポーネントをアプリケーション ログのソースとして登録する方法を示しています。このコードでは、System.Diagnostics 名前空間に対する Imports ステートメントまたは using ステートメントが存在すると仮定しています。
EventLog.CreateEventSource("MyApp1", "Application")
System.Diagnostics.EventLog.CreateEventSource("MyApp1", "Application");
ヒント : リモート コンピュータ上でイベント ソースを作成するには、EventSourceCreationData を使用します。次に例を示します。
Dim creationData As New EventSourceCreationData("ApplicationName", "Application") creationData.MachineName = "ServerName" EventLog.CreateEventSource(creationData)
System.Diagnostics.EventSourceCreationData creationData = new System.Diagnostics.EventSourceCreationData("ApplicationName", "Application"); creationData.MachineName = "ServerName"; EventLog.CreateEventSource(creationData);
参照
処理手順
チュートリアル : イベント ログ、イベント ソース、およびエントリの基礎