次の方法で共有


エラーや警告ログ エントリの書き込み

次の例は、アプリケーションが通常 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 フィールドは 「! 」であり、これは、警告メッセージを示しますが、 エラー メッセージを示す「!!!」 とは異なります。