log4net SDK Reference |

# LogicalThreadContext Class

The log4net Logical Thread Context.

For a list of all members of this type, see LogicalThreadContext Members.

System.Object
log4net.LogicalThreadContext

[Visual Basic]
NotInheritable Public Class LogicalThreadContext
[C#]
public sealed class LogicalThreadContext

#### Thread Safety

This type is safe for multithreaded operations.

#### Remarks

The `LogicalThreadContext` provides a location for CallContext specific debugging information to be stored. The `LogicalThreadContext` properties override any ThreadContext or GlobalContext properties with the same name.

The Logical Thread Context has a properties map and a stack. The properties and stack can be included in the output of log messages. The PatternLayout supports selecting and outputting these properties.

The Logical Thread Context provides a diagnostic context for the current call context. This is an instrument for distinguishing interleaved log output from different sources. Log output is typically interleaved when a server handles multiple clients near-simultaneously.

The Logical Thread Context is managed on a per CallContext basis.

#### Example

Example of using the thread context properties to store a username.

    [C#]
    LogicalThreadContext.Properties["user"] = userName;
    log.Info("This log message has a LogicalThreadContext Property called 'user'");

Example of how to push a message into the context stack

    [C#]
    using(LogicalThreadContext.Stacks["LDC"].Push("my context message"))
    {
        log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'");

    } // at the end of the using block the message is automatically popped

#### Requirements

Namespace: log4net

Assembly: log4net (in log4net.dll)

#### See Also

LogicalThreadContext Members | log4net Namespace