方法 : カスタム イベント ログを作成または削除する
更新 : 2007 年 11 月
EventLog クラスを使用すると、ローカル コンピュータまたはリモート コンピュータでカスタム イベント ログを作成できます。コンポーネントによって既定のアプリケーション ログに書き込まれたエントリよりも詳細なエントリを構成するには、カスタム ログを作成します。たとえば、OrderEntry というコンポーネントがあり、このコンポーネントがイベント ログにエントリ情報を書き込むとします。このエントリ情報のバックアップを作成し、アプリケーション ログの他のエントリよりも長期間書き込みに使用するとします。アプリケーション ログにコンポーネントを登録して書き込む代わりに、OrdersLog というカスタム ログを作成し、このログにコンポーネントを登録して、エントリを書き込むことができます。この方法では、すべてのオーダー情報が 1 つの場所に格納されるため、アプリケーション ログのエントリが消去されても影響を受けません。
CreateEventSource メソッドを間接的に使用して、カスタム ログを作成できます。このメソッドでは新しいソースが作成され、ユーザーは書き込み先のログを指定します。存在しないログに書き込むように指定した場合は、カスタム ログが自動的に作成され、コンポーネントがカスタム ログのソースとして登録されます。
メモ : |
---|
カスタム ログを削除するには、他のログを削除する場合と同じように、Delete メソッドを呼び出します。詳細については、「方法 : イベント ログを削除する」を参照してください。 |
イベント ログの作成と EventLog コンポーネントのインスタンスの作成には相違点があります。CreateEventSource メソッドを使用する場合は、プロジェクトまたはアプリケーションのコンポーネントではなく、Windows に新しいカスタム イベント ログが作成されます。EventLog コンポーネントのインスタンスを作成する場合は、外部イベント ログを参照するプロジェクト内にコンポーネントが作成されます。CreateEventSource メソッドを使用して作成したイベント ログは、イベント ビューアに表示できますが、コンポーネントのインスタンスは表示できません。
メモ : |
---|
通常は、アプリケーションのインストール中に新しいイベント ソースを作成します。これにより、オペレーティング システムが登録済みのイベント ソースとその設定の一覧を更新する時間ができます。オペレーティング システムがイベント ソースの一覧を更新しないうちに、新しいソースを使用してイベントを書き込もうとすると、書き込み操作が失敗します。インストール中にソースを作成しない場合は、最初の書き込み操作よりもかなり前の時点で (アプリケーションの初期化時など)、ソースを作成してください。この方法を採用する場合は、初期化コードを必ずコンピュータの管理者権限で実行します。新しいイベント ソースを作成するには管理者権限が必要です。 |
カスタム ログは、サーバー エクスプローラ、または Windows 2000 の [コンピュータの管理] ウィンドウに表示できます。詳細については、「方法 : サーバー エクスプローラでイベント ログを使用する」または「方法 : サーバー エクスプローラからイベント ビューアを起動する」を参照してください。
ログを作成および削除するには、リモート コンピュータでの適切なアクセス権が必要です。詳細については、「イベント ログへのアクセス権」を参照してください。
セキュリティに関するメモ : |
---|
イベント ログを作成する場合は、リソースが既に存在している可能性があることに注意してください。他の (おそらく不正な) プロセスが既に、自由にアクセスできるリソースを作成している可能性もあります。イベント ログにデータを配置すると、そのデータを他のプロセスから利用できるようになります。既存のイベント ログの詳細については、「方法 : 特定のイベント ログの有無を確認する」を参照してください。 |
カスタム イベント ログを作成するには
CreateEventSource メソッドを呼び出し、ソースの文字列および作成するログ ファイルの名前を指定します。
メモ : ログ名として NULL ("") を指定した場合は、既定でアプリケーション ログに設定されます。この場合、新しいログは作成されませんが、指定したソースがアプリケーション ログに登録されます。新しいログを作成する場合は、最初の 8 文字だけが評価され、名前が一意かどうかが判断されます。
次の例は、ローカル コンピュータ上に MyNewLog というカスタム ログを作成する方法を示しています。このコードでは、System.Diagnostics 名前空間に対する Imports ステートメントまたは using ステートメントが存在すると仮定しています。
EventLog.CreateEventSource("ApplicationName", "LogName")
System.Diagnostics.EventLog.CreateEventSource("ApplicationName", "LogName");
リモート コンピュータ上にカスタム イベント ログを作成する場合は、3 番目のパラメータにコンピュータ名を指定します。次に例を示します。
Dim creationData As New EventSourceCreationData("ApplicationName", "LogName") creationData.MachineName = "ServerName" EventLog.CreateEventSource(creationData)
System.Diagnostics.EventSourceCreationData creationData = new System.Diagnostics.EventSourceCreationData("ApplicationName", "LogName"); creationData.MachineName = "ServerName"; EventLog.CreateEventSource(creationData);
参照
処理手順
方法 : サーバー エクスプローラでイベント ログを使用する
方法 : サーバー エクスプローラからイベント ビューアを起動する