PLOG_EVENT_ROUTINE
コールバックシグネチャ
void PLOG_EVENT_ROUTINE(
INT_PTR ResourceHandle,
LOG_LEVEL LogLevel,
LPWSTR FormatString
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| ResourceHandle | INT_PTR | イベントを記録するリソースを識別するハンドル。ResourceHandle には、このリソースに対する Open 呼び出しで渡されたハンドルを指定します。 |
| LogLevel | LOG_LEVEL | LOG_LEVEL 列挙型で列挙される値で、イベントのログ レベルを表します。この値は情報提供のみを目的としています。有効な値は次のとおりで、重大度の低いものから順に示します。 LOG_INFORMATION (0)イベントは情報提供を目的としたものです。 LOG_WARNING (1)イベントは、発生した可能性のある障害を報告していますが、実際に障害が発生したかどうかは不明です。 LOG_ERROR (2)イベントは 1 つのコンポーネントに影響しますが、他のコンポーネントは影響を受けず、ノードの残りの部分の整合性は損なわれていません。 LOG_SEVERE (3)イベントは、複数のコンポーネントに影響する重大な障害、またはシステム全体の整合性が損なわれている、もしくは損なわれていると考えられることを報告しています。 |
| FormatString | LPWSTR | 記録する情報を含む、null で終わる Unicode 文字列。この文字列は、FormatMessage 関数に渡すものと同じ形式である必要があります。 |
公式ドキュメント
クラスター ログにイベントを記録します。PLOG_EVENT_ROUTINE 型は、この関数へのポインターを定義します。
解説(Remarks)
LogEvent コールバック関数は リソース モニターによって実装され、リソース DLL がクラスター ログにイベントやエラーを報告するために呼び出します。リソース DLL は、LogEvent コールバック関数へのポインターを、Startup エントリ ポイント関数の LogEvent パラメーターで受け取ります。
LogEvent はイベント ログにエントリを書き込みません。イベント ログにイベントを報告するには、リソース DLL は ReportEvent 関数を呼び出す必要があります。
記録されるメッセージの形式は次のとおりです。
ResourceTypeName ResourceName: message
ResourceTypeName は「Generic Application」などのリソースの種類です。ResourceName は個々のリソースのわかりやすい名前であり、message はリソース DLL がリソース モニターに渡したメッセージです。
ログ エントリのサイズは 500 文字に制限されています。
例
次の例は、クラスター リソース タイプ ウィザードによって生成されたコードに基づいています。その他の例については、リソース DLL のサンプルを参照してください。
// The following parameters are assumed to be already defined:
// g_pfnLogEvent Stores the address of the LogEvent callback
// function passed to the DLL in the
// Startup entry point.
// pResourceEntry Stores resource instance data.
// MY_SVCNAME Stores the name of a service.
// nStatus Result
// Log the fact that an attempt to start a service has failed.
// Basic message
(g_pfnLogEvent)( pResourceEntry->hResourceHandle,
LOG_ERROR,
L"Failed to start the specified service.\n" );
// Message w/string argument
(g_pfnLogEvent)( pResourceEntry->hResourceHandle,
LOG_ERROR,
L"OnlineThread: Failed to start the '%1' service.\n",
MY_SVCNAME );
// Message w/multiple arguments
(g_pfnLogEvent)( pResourceEntry->hResourceHandle,
LOG_ERROR,
L"OnlineThread: Failed to start the '%1' service. Error: %2!u!.\n",
MY_SVCNAME,
nStatus );
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)