# <trace> Element

Contains listeners that collect, store, and route tracing messages.

<configuration>
<system.diagnostics>
<trace>

## Syntax

<trace autoflush="true|false"
indentsize="indent value"
useGlobalLock="true| false"/>


## Attributes and Elements

The following sections describe attributes, child elements, and parent elements.

### Attributes

Attribute Description
autoflush Optional attribute.

Specifies whether the trace listeners automatically flush the output buffer after every write operation.
indentsize Optional attribute.

Specifies the number of spaces to indent.
useGlobalLock Optional attribute.

Indicates whether the global lock should be used.

## autoflush Attribute

Value Description
false Does not automatically flush the output buffer. This is the default.
true Automatically flushes the output buffer.

## useGlobalLock Attribute

Value Description
false Does not use the global lock if the listener is thread safe; otherwise, uses the global lock.
true Uses the global lock regardless of whether the listener is thread safe. This is the default.

### Child Elements

Element Description
<listeners> Specifies a listener that collects, stores, and routes messages.

### Parent Elements

Element Description
configuration The root element in every configuration file used by the common language runtime and .NET Framework applications.
system.diagnostics Specifies trace listeners that collect, store, and route messages and the level where a trace switch is set.

## Example

The following example shows how to use the <trace> element to add the listener MyListener to the Listeners collection. MyListener creates a file that is named MyListener.log and writes the output to the file. The useGlobalLock attribute is set to false, which causes the global lock not to be used if the trace listener is thread safe. The autoflush attribute is set to true, which causes the trace listener to write to the file regardless of whether the Trace.Flush method is called. The indentsize attribute is set to 0 (zero), which causes the listener to indent zero spaces when the Trace.Indent method is called.

<configuration>
<system.diagnostics>
<trace useGlobalLock="false" autoflush="true" indentsize="0">
<listeners>
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener, system version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\myListener.log" />
</listeners>
</trace>
</system.diagnostics>
</configuration>