次の方法で共有


イベント ソース

イベント ログ API は、Windows Server 2003、Windows XP、または Windows 2000 オペレーティング システムで実行されるアプリケーション用に設計されています。 Windows Vista では、イベント ログ インフラストラクチャが再設計されました。 Windows Vista 以降のオペレーティング システムで実行するように設計されたアプリケーションでは、 Windows イベント ログを使用する必要があります。

Eventlog キー の各ログには、イベント ソースと呼ばれるサブキー含まれています。 イベント ソースは、イベントをログに記録するソフトウェアの名前です。 多くの場合、アプリケーションの名前か、アプリケーションが大きい場合はアプリケーションのサブコンポーネントの名前です。 レジストリには最大 16,384 個のイベント ソースを追加できます。 セキュリティ ログは、システムでのみ使用されます。 デバイス ドライバーは、システム ログに名前を追加する必要があります。 アプリケーションとサービスは、アプリケーション ログに名前を追加するか、カスタム ログを作成する必要があります。

イベント ソースの構造は次のとおりです。

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services
            EventLog
               Application
                  AppName
               Security
               System
                  DriverName
               CustomLog
                  AppName

ログ名として既に使用されているソース名は使用できません。 また、ソース名を階層型にすることはできません。つまり、円記号 ("\") を含めることはできません。

各イベント ソースには、次の表に示すように、イベントをログに記録するソフトウェアに固有の情報 (メッセージ ファイルなど) が含まれています。

レジストリ値 形容
CategoryCount サポートされているイベント カテゴリの数。 この値は REG_DWORD型です。
CategoryMessageFile カテゴリ メッセージ ファイルへのパス。 カテゴリ メッセージ ファイルには、カテゴリを記述する言語依存の文字列が含まれています。 この値には、REG_SZ 型または REG_EXPAND_SZ型を指定できます。
EventMessageFile 1 つ以上のイベント メッセージ ファイルへのパス。複数のファイルを区切る場合はセミコロンを使用します。 イベント メッセージ ファイルには、イベントを記述する言語依存の文字列が含まれています。 この値には、REG_SZ 型または REG_EXPAND_SZ型を指定できます。
ParameterMessageFile パラメーター メッセージ ファイルへのパス。 パラメーター メッセージ ファイルには、イベント記述文字列に挿入される言語に依存しない文字列が含まれています。 この値には、REG_SZ 型または REG_EXPAND_SZ型を指定できます。
TypesSupported 未使用
設定すると、この値は REG_DWORD 型になります。

アプリケーションが RegisterEventSource または OpenEventLog関数使用してイベント ログへのハンドルを取得すると、イベント ログ サービスはレジストリ内の指定されたイベント ソースを検索します。 たとえば、アプリケーション ログには、Microsoft SQL Server と Microsoft Excel のイベント ソースが含まれている場合があります。 アプリケーション RegisterEventSource を使用するか、アプリケーション、SQL、または Excel のソース名で OpenEventLog すると、イベント ログ サービスは、アプリケーション ログへのハンドルを返します。

アプリケーションは、レジストリに新しいイベント ソースを追加することなく、アプリケーション ログを使用できます。 アプリケーションが RegisterEventSource呼び出し、レジストリに見つからないソース名を渡した場合、イベント ログ サービスは既定で Application ログを使用します。 ただし、メッセージ ファイルがないため、イベント ビューアーはイベント識別子またはイベント カテゴリを説明文字列にマップできず、エラーが表示されます。 このため、アプリケーションのレジストリに一意のイベント ソースを追加し、メッセージ ファイルを指定する必要があります。