写入缩进日志条目
如 文本日志节正文的格式中所述, 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 字段为“缩进示例”, 其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
有关从实际文本日志中提取的缩进节条目的另一个示例,请参阅 文本日志节正文的格式。