エラーや警告ログ エントリの書き込み
次の例は、アプリケーションが通常 SetupWriteTextLog を呼び出して、SetupAPI テキスト ログにエラーまたは警告エントリを書き込む方法を示しています。 ただし、イベントが SetupAPI 固有のエラーまたは Win32 エラーに関連付いている場合、アプリケーションは代わりに SetupWriteTextLogError を呼び出すことができます。 SetupWriteTextLogError を使用すると、これらの種類のエラーに関する情報のログ記録と解釈が容易になります。
エラー メッセージをログに記録する場合の SetupWriteTextLog の呼び出しの詳細は、「エラー メッセージのログ記録」をご覧ください。また、警告メッセージをログに記録する場合の SetupWriteTextLog の呼び出しの詳細は、「警告メッセージのログ記録」をご覧ください。
エラーメッセージのログ記録
この例では、アプリケーションが SetupWriteTextLog を呼び出して、次の入力パラメーター値を与えます。
LogToken は、SetupGetThreadLogToken を呼び出すことによって取得されたか、「ログのトークン」で説明がある通り、システム定義のログ トークン値の 1 つであるログ トークン値に設定されます。
Category は、TXTLOG_VENDOR に設定されます。これは、ログ エントリがベンダーによって提供されたアプリケーションによって作成されることを示します。 イベント カテゴリの詳細は、「テキスト ログのイベント カテゴリの有効化」に記載されています。
Flagsが TXTLOG_ERROR と TXTLOG_TIMESTAMPのビットごとの OR に設定されます。 この例では、インデントの深さは変更されず、現在のインデントの深さは以前設定されたモノスペース テキストスペース 5 個分です。 インデントの深さを変更する方法については、「インデントされたログ エントリの記述」をご覧ください。 イベント レベルの詳細は、「テキスト ログのイベント レベルの設定」の項目に記載されています。
MessageStr が TEXT("Application Error (%d)") に設定されています。
コンマ区切りリストは、変数 ErrorCode を提供します。
次のコードは、SetupWriteTextLog を呼び出して、この例のログ エントリを書き込みます。
//The LogToken value was previously returned by call to
//SetupGetThreadLogToken or one of the system-defined log token values
DWORD Category = TXTLOG_VENDOR;
DWORD Flags = TXTLOG_ERROR | TXTLOG_TIMESTAMP;
DWORD ErrorCode = 1111; // An error code value
SetupWriteTextLog(LogToken, Category, Flags, TEXT("Application Error (%d)"),ErrorCode);
TXTLOG_VENDOR イベント カテゴリが有効で、テキスト ログに TXTLOG_ERROR イベント レベルが設定されている場合、このコードはテキスト ログに次のようにフォーマット設定されるエントリを作成します。
!!! 2005/02/13 22:06:28.109: : Application error (1111)
entry_prefix フィールド 「!!! 」は、ログ エントリがエラー メッセージであることを示します。
警告メッセージのログ記録
警告メッセージのログ記録は、エラー メッセージのログ記録とほぼ同じです。 違いは、イベント レベルの設定です。 Flags を TXTLOG_ERROR ではなく、TXTLOG_WARNING に設定します。 Flags が TXTLOG_WARNING と TXTLOG_TIMESTAMPのビットごとの OR に設定されている点を除き、「エラー メッセージのログ記録」の説明に従って SetupWriteTextLog が呼び出された場合、SetupWriteTextLog は次のログ エントリを書き込みます。
! 2005/02/13 22:06:28.109: : Application error (1111)
ログ エントリのentry_prefix フィールドは 「! 」であり、これは、警告メッセージを示しますが、 エラー メッセージを示す「!!!」 とは異なります。