寫入縮排記錄專案

文字記錄區段本文的格式所述, SetupAPI 文字記錄檔 中的區段主體記錄專案格式包含下欄欄位:

entry_prefix time_stamp event_category indentation formatted_message

您可以使用記錄專案中的 縮排 欄位來縮排 formatted_message 欄位,讓記錄專案更容易閱讀和瞭解。 縮排欄位中的縮排量取決於針對區段設定的縮排深度。 縮排深度是縮排單位的數目,其中縮排單位是五個單空間文字空格。 例如,1 的縮排深度會產生 5 個空格的縮排、2 的縮排深度會導致縮排為 10 個空格,依此類傳。 最小縮排深度為零,而縮排深度上限為 16。

根據預設,區段的縮排深度為零。 如果縮排深度為零, 則不會 縮排formatted_message欄位。 如果應用程式增加縮排深度以寫入縮排區段專案序列,應用程式也必須撰寫對應的區段專案集,才能將縮排深度重設為零,應用程式之後才能寫入未縮排的其他區段專案。

若要變更區段的縮排深度,請呼叫 SetupAPI 記錄函式,並在下列其中一個系統定義的資訊清單常數與提供給 SetupAPI 記錄函式的 flags 參數之間使用位 OR。

資訊清單常數 變更縮排深度

TXTLOG_DEPTH_INCR

目前記錄專案和所有後續記錄專案都會增加 1 個縮排深度。

TXTLOG_DEPTH_DECR

目前記錄專案和所有後續記錄專案的縮排深度會減少 1。

TXTLOG_TAB_1

縮排深度只會針對目前的記錄專案增加 1。

例如,下列 對 SetupWriteTextLog 的呼叫順序會在 section_title 欄位為 「Indentation Example」 且 instance_identifier 欄位為 「Instance 0」 的區段標頭之後寫入縮排記錄專案序列。

// The LogToken value was previously returned by a call to 
// SetupGetThreadLogToken.
// The LogToken value specifies a section in one of the text logs.

DWORD Category = TXTLOG_VENDOR; 
DWORD Flags = TXTLOG_DETAILS;

SetupWriteTextLog(LogToken, Category, Flags, TEXT("Subsection A"));

// Additional SetupWriteTextLog calls that write entries at Subsection A indentation level

SetupWriteTextLog(LogToken, Category, Flags | TXTLOG_DEPTH_INCR, TEXT("Subsection A.1"));

// Additional SetupWriteTextLog calls that write entries at Subsection A.1 indentation level

SetupWriteTextLog(LogToken, Category, Flags | TXTLOG_DEPTH_INCR, TEXT("Subsection A.1.1"));

// Additional SetupWriteTextLog calls that write entries at Subsection A.1.1 indentation level

SetupWriteTextLog(LogToken, Category, Flags, TEXT("End of Subsection A.1.1"));

// Additional SetupWriteTextLog calls that write entries at Subsection A.1 indentation level

SetupWriteTextLog(LogToken, Category, Flags | TXTLOG_DEPTH_DECR, TEXT("End of Subsection A.1"));

// Additional SetupWriteTextLog calls that write entries at Subsection A indentation level
SetupWriteTextLog(LogToken, Category, Flags | TXTLOG_DEPTH_DECR, TEXT("End of Subsection A"));

如果文字記錄檔的事件層級大於或等於TXTLOG_DETAILS,且文字記錄檔已啟用事件類別目錄TXTLOG_VENDOR,則先前的程式碼會在區段標頭後面寫入下列記錄專案。

在下列範例中,省略號 (...) 代表與上一個記錄專案相同層級的零個或多個其他記錄專案。 時間戳記會取代為實際的時間戳記。

>>>  [Indentation Example - Instance 0]
>>>  2005/02/13 22:06:28.109: Section start
        : Subsection A
...
        :      Subsection A.1
...
        :           Subsection A.1.1
...
        :           End Subsection A.1.1
...
        :      End of Subsection A.1
...
        : End of Subsection A

如需從實際文字記錄擷取之縮排區段專案的另一個範例,請參閱 文字記錄區段本文的格式