次の例は、アプリケーションが通常 SetupWriteTextLog を呼び出して、SetupAPI テキスト ログにエラーまたは警告エントリを書き込む方法を示しています。 ただし、イベントが SetupAPI 固有のエラーまたは Win32 エラーに関連付けられている場合、アプリケーションは代わりに SetupWriteTextLogError を呼び出すことができます。 SetupWriteTextLogError は、これらの種類のエラーに関する情報のログ記録と解釈を容易にします。
エラー メッセージをログに記録するために SetupWriteTextLog を呼び出す方法については、「 エラー メッセージのログ記録 」を参照してください。また、警告メッセージをログに記録する SetupWriteTextLog の呼び出しについては、「 警告メッセージのログ記録」を参照してください。
エラー メッセージのログ記録
この例では、アプリケーションは SetupWriteTextLog を呼び出し、次のパラメーター値を指定します。
LogToken には、SetupGetThreadLogToken を呼び出して取得したログ トークン値、または ログ トークン で説明されているシステム定義のログ トークン値の 1 つが設定されます。
カテゴリ は TXTLOG_VENDOR に設定されます。これは、ログ エントリがベンダー提供のアプリケーションによって作成されることを示します。 イベント カテゴリについては、テキスト ログのイベント カテゴリを有効にするを参照してください。
フラグ は、TXTLOG_ERRORとTXTLOG_TIMESTAMPのビットごとの OR に設定されます。 この例では、インデントの深さは変更されず、現在のインデントの深さは以前設定されたモノスペース テキストスペース 5 個分です。 インデントの深さを変更する方法については、「 インデントされたログ エントリの書き込み」を参照してください。 イベント レベルについては、テキスト ログのイベント レベルの設定を参照してください。
MessageStr が TEXT("アプリケーション エラー (%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 に設定します。 SetupWriteTextLog が 「エラー メッセージのログ記録」 で説明されているように呼び出された場合、ただし フラグ が TXTLOG_WARNING と TXTLOG_TIMESTAMP のビットごとの OR に設定されている点を除き、SetupWriteTextLog は次のログ エントリを書き込みます。
! 2005/02/13 22:06:28.109: : Application error (1111)
ログ エントリの entry_prefix フィールドは "!" です。 であり、これは、警告メッセージを示しますが、 エラー メッセージを示す「!!!」 とは異なります。