Compartilhar via


Gravando entradas de log recuadas

Conforme descrito em Formato de um Corpo da Seção de Log de Texto, o formato de uma entrada de log do corpo da seção em um log de texto SetupAPI consiste nos seguintes campos:

entry_prefix time_stamp event_category indentation formatted_message

Você pode usar o campo de recuo em entradas de log para recuar os campos de formatted_message para facilitar a leitura e a compreensão das entradas de log. A quantidade de recuo em um campo de recuo depende da profundidade de recuo definida para a seção. A profundidade de recuo é o número de unidades de recuo, em que uma unidade de recuo é de cinco espaços de texto de monospace. Por exemplo, uma profundidade de recuo de 1 resulta em um recuo de 5 espaços, uma profundidade de recuo de 2 resulta em um recuo de 10 espaços e assim por diante. A profundidade mínima de recuo é zero e a profundidade máxima de recuo é 16.

Por padrão, a profundidade de recuo de uma seção é zero. Se a profundidade de recuo for zero, o campo formatted_message não será recuado. Se um aplicativo aumentar a profundidade de recuo para gravar uma sequência de entradas de seção recuadas, o aplicativo também deverá gravar um conjunto correspondente de entradas de seção para redefinir a profundidade de recuo para zero antes que o aplicativo possa gravar posteriormente entradas de seção adicionais que não são recuadas.

Para alterar a profundidade de recuo de uma seção, chame uma função de log SetupAPI e use um OR bit a bit entre uma das seguintes constantes de manifesto definidas pelo sistema e o parâmetro flags fornecido para a função de log SetupAPI.

Constante de manifesto Alteração na profundidade do recuo

TXTLOG_DEPTH_INCR

A profundidade de recuo é aumentada em 1 para a entrada de log atual e todas as entradas de log subsequentes.

TXTLOG_DEPTH_DECR

A profundidade de recuo é reduzida em 1 para a entrada de log atual e todas as entradas de log subsequentes.

TXTLOG_TAB_1

A profundidade de recuo é aumentada em 1 apenas para a entrada de log atual.

Por exemplo, a sequência de chamadas a seguir para SetupWriteTextLog grava uma sequência de entradas de log recuadas após o cabeçalho da seção cujo campo section_title é "Exemplo de Recuo" e cujo campo instance_identifier é "Instância 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"));

Se o nível de evento do log de texto for maior ou igual a TXTLOG_DETAILS e a categoria de evento TXTLOG_VENDOR estiver habilitada para o log de texto, o código anterior gravará as seguintes entradas de log após o cabeçalho da seção.

No exemplo a seguir, as reticências (...) representam zero ou mais entradas de log adicionais no mesmo nível de recuo que a entrada de log anterior. O carimbo de data/hora seria substituído por um carimbo de data/hora real.

>>>  [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

Para obter outro exemplo de entradas de seção recuadas que foram obtidas de um log de texto real, consulte Formato de um corpo de seção de log de texto.