Scrittura di voci di log rientrate

Come descritto in Formato del corpo di una sezione del log di testo, il formato di una voce di log del corpo di una sezione in un log di testo SetupAPI è costituito dai campi seguenti:

entry_prefix time_stamp event_category indentation formatted_message

È possibile usare il campo di rientro nelle voci di log per impostare il rientro dei campi formatted_message per semplificare la lettura e la comprensione delle voci di log. La quantità di rientro in un campo di rientro dipende dalla profondità del rientro impostata per la sezione. La profondità di rientro è il numero di unità di rientro, in cui un'unità di rientro è di cinque spazi di testo monospace. Ad esempio, una profondità di rientro pari a 1 comporta un rientro di 5 spazi, una profondità di rientro pari a 2 comporta un rientro di 10 spazi e così via. La profondità minima del rientro è zero e la profondità massima del rientro è 16.

Per impostazione predefinita, la profondità di rientro di una sezione è zero. Se la profondità del rientro è zero, il campo formatted_message non verrà rientrato. Se un'applicazione aumenta la profondità di rientro per scrivere una sequenza di voci di sezione rientrate, l'applicazione deve anche scrivere un set corrispondente di voci di sezione per reimpostare la profondità di rientro su zero prima che l'applicazione possa successivamente scrivere voci di sezione aggiuntive che non sono rientrate.

Per modificare la profondità di rientro per una sezione, chiamare una funzione di registrazione SetupAPI e usare un OR bit per bit tra una delle seguenti costanti del manifesto definite dal sistema e il parametro flags fornito alla funzione di registrazione SetupAPI.

costante manifest Modifica della profondità del rientro

TXTLOG_DEPTH_INCR

La profondità di rientro viene aumentata di 1 per la voce di log corrente e per tutte le voci di log successive.

TXTLOG_DEPTH_DECR

La profondità del rientro viene ridotta di 1 per la voce di log corrente e tutte le voci di log successive.

TXTLOG_TAB_1

La profondità del rientro è aumentata di 1 solo per la voce di log corrente.

Ad esempio, la sequenza di chiamate seguente a SetupWriteTextLog scrive una sequenza di voci di log rientrate dopo l'intestazione di sezione il cui campo section_title è "Esempio di rientro" e il cui campo instance_identifier è "Istanza 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 il livello di evento per il log di testo è maggiore o uguale a TXTLOG_DETAILS e la categoria di eventi TXTLOG_VENDOR è abilitata per il log di testo, il codice precedente scriverà le voci di log seguenti dopo l'intestazione della sezione.

Nell'esempio seguente i puntini di sospensione (...) rappresentano zero o più voci di log aggiuntive allo stesso livello di rientro della voce di log precedente. Il timestamp verrà sostituito da un timestamp effettivo.

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

Per un altro esempio di voci di sezione rientrate ricavate da un log di testo effettivo, vedere Formato del corpo di una sezione del log di testo.