寫入錯誤或警告記錄專案
下列範例示範應用程式通常如何呼叫 SetupWriteTextLog ,以在 SetupAPI 文字記錄檔中寫入錯誤或警告專案。 不過,如果事件與 SetupAPI 特定錯誤或 Win32 錯誤相關聯,應用程式可以改為呼叫 SetupWriteTextLogError 。 SetupWriteTextLogError 有助於記錄和解譯這些錯誤類型的相關資訊。
如需呼叫 SetupWriteTextLog 以記錄錯誤訊息的資訊,請參閱 記錄錯誤訊息 ,以及呼叫 SetupWriteTextLog 以記錄警告訊息的相關資訊,請參閱 記錄警告訊息。
記錄錯誤訊息
在此範例中,應用程式會呼叫 SetupWriteTextLog,並提供下列參數值:
LogToken 是透過呼叫 SetupGetThreadLogToken 取得的記錄權杖值,或是記錄權杖中所述的其中一個系統定義的記錄 權杖值。
類別 設定為 TXTLOG_VENDOR,表示記錄專案是由廠商提供的應用程式所建立。 事件類別目錄會在 啟用文字記錄檔的事件類別中說明。
旗標 會設定為位 OR TXTLOG_ERROR 和 TXTLOG_TIMESTAMP。 在此範例中,縮排深度不會變更,而且目前的縮排深度先前設定為五個單空格文字空間。 如需如何變更縮排深度的資訊,請參閱 撰寫縮排記錄專案。 事件層級描述于 設定文字記錄檔的事件層級 主題中。
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欄位 「!!! 「 表示記錄專案是錯誤訊息。
記錄警告訊息
記錄警告訊息幾乎與記錄錯誤訊息相同。 差異在於事件層級的設定。 將 [旗標] 設定為 [TXTLOG_WARNING],而不是 [TXTLOG_ERROR]。 如果如記錄錯誤訊息中所述呼叫SetupWriteTextLog,但Flags設定為位 OR TXTLOG_WARNING 和 TXTLOG_TIMESTAMP,SetupWriteTextLog會寫入下列記錄專案:
! 2005/02/13 22:06:28.109: : Application error (1111)
記錄專案的 entry_prefix 欄位為 「! 「,這表示這是警告訊息,而不是 」!!! 「,這表示錯誤訊息。