次の方法で共有


EventLogInstaller クラス

アプリケーションが実行時に読み書きするイベント ログをインストールおよび構成できます。このクラスは、イベント ログをインストールするときに、InstallUtil.exe などのインストール ユーティリティによって呼び出されます。

この型のすべてのメンバの一覧については、EventLogInstaller メンバ を参照してください。

System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         System.Configuration.Install.Installer
            System.Configuration.Install.ComponentInstaller
               System.Diagnostics.EventLogInstaller

Public Class EventLogInstaller
   Inherits ComponentInstaller
[C#]
public class EventLogInstaller : ComponentInstaller
[C++]
public __gc class EventLogInstaller : public ComponentInstaller
[JScript]
public class EventLogInstaller extends ComponentInstaller

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

インストール ユーティリティは、 EventLogInstaller を使用して、イベント ログに関連付けられるレジストリ値を書き込みます。インストール ユーティリティの詳細については、「 インストーラ ツール (Installutil.exe) 」を参照してください。 EventLogInstaller クラスは、ローカル コンピュータだけにイベント ログをインストールできます。

インストーラは、 Source プロパティで指定するイベント ソースを作成します。この動作は、 EventLog コンポーネントで CreateEventSource を呼び出すことによく似ています。イベント ソースはイベント ログに書き込むときにだけ必要になるため、ログに書き込まずに読み取るだけの場合は、イベント ログ インストーラを使用する必要はありません。

イベント ログをインストールするには、 Installer から継承するプロジェクト インストーラ クラスを作成し、そのクラスの RunInstallerAttributetrue に設定します。プロジェクト内で、アプリケーションが書き込む各イベント ログの EventLogInstaller インスタンスを作成して、プロジェクト インストーラ クラスにそのインスタンスを追加します。

インストール ユーティリティが呼び出されると、このユーティリティは RunInstallerAttribute を検索します。このプロパティが true の場合、ユーティリティは、プロジェクト インストーラに関連付けられている Installers コレクションのすべての項目をインストールします。 RunInstallerAttributefalse の場合、ユーティリティはプロジェクト インストーラを無視します。

EventLogInstaller インスタンスのその他のプロパティは、プロジェクト インストーラの Installers コレクションにインスタンスを追加する前または後に変更できます。ただし、この変更はインストーラ ユーティリティを実行する前に行います。アプリケーションがイベント ログに書き込む場合は、 Source プロパティを設定する必要があります。

Source プロパティを設定し、指定したソースが既に存在する場合、EventLogInstaller は前回のソースを削除してから再度作成し、Log プロパティで指定したログにそのソースを割り当てます。

通常、コードからは EventLogInstaller クラスのメソッドを呼び出しません。このメソッドを呼び出すのは、一般的にインストール ユーティリティの InstallUtil.exe だけです。ユーティリティは、インストール プロセス中に、 Install メソッドを自動的に呼び出します。必要に応じて、例外を生成したオブジェクトに対して Rollback メソッドを呼び出すことにより、エラーを回復します。

使用例

 
Imports System
Imports System.Configuration.Install
Imports System.Diagnostics
Imports System.ComponentModel

<RunInstaller(True)>  _
Public Class MyEventLogInstaller
   Inherits Installer
   Private myEventLogInstaller As EventLogInstaller
   
   Public Sub New()
      ' Create an instance of 'EventLogInstaller'.
      myEventLogInstaller = New EventLogInstaller()
      ' Set the 'Source' of the event log, to be created.
      myEventLogInstaller.Source = "MyNewLog"
      ' Set the 'Log' that the source is created in.
      myEventLogInstaller.Log = "MyNewLog"
      ' Add myEventLogInstaller to 'InstallerCollection'.
      Installers.Add(myEventLogInstaller)
   End Sub 'New
   Public Shared Sub Main()
   End Sub 'Main
End Class 'MyEventLogInstaller

[C#] 
using System;
using System.Configuration.Install;
using System.Diagnostics;
using System.ComponentModel;

[RunInstaller(true)]
public class MyEventLogInstaller: Installer
{
   private EventLogInstaller myEventLogInstaller;
   public MyEventLogInstaller() 
   {
      // Create an instance of 'EventLogInstaller'.
      myEventLogInstaller = new EventLogInstaller();
      // Set the 'Source' of the event log, to be created.
      myEventLogInstaller.Source = "MyNewLog";
      // Set the 'Log' that the source is created in.
      myEventLogInstaller.Log = "MyNewLog";
      // Add myEventLogInstaller to 'InstallerCollection'.
      Installers.Add(myEventLogInstaller);   
   }
   public static void Main()
   {
   }
}

[C++] 
#using <mscorlib.dll>
#using <System.dll>
#using <System.Configuration.Install.dll>

using namespace System;
using namespace System::Configuration::Install;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

[RunInstaller(true)]
__gc class MyEventLogInstaller : public Installer {
private:
    EventLogInstaller* myEventLogInstaller;

public:
    MyEventLogInstaller() {
        // Create an instance of 'EventLogInstaller'.
        myEventLogInstaller = new EventLogInstaller();
        // Set the 'Source' of the event log, to be created.
        myEventLogInstaller->Source = S"MyNewLog";
        // Set the 'Log' that the source is created in.
        myEventLogInstaller->Log = S"MyNewLog";
        // Add myEventLogInstaller to 'InstallerCollection'.
        Installers->Add(myEventLogInstaller);
    }
};

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Diagnostics

プラットフォーム: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Configuration.Install (System.Configuration.Install.dll 内)

参照

EventLogInstaller メンバ | System.Diagnostics 名前空間 | EventLog | インストーラ ツール (Installutil.exe) | EventLog.CreateEventSource