寫入縮排記錄專案
如 文字記錄區段本文的格式所述, 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
如需從實際文字記錄擷取之縮排區段專案的另一個範例,請參閱 文字記錄區段本文的格式。