Apache log4net� SDK Documentation - Microsoft .NET Framework 4.0

ThreadContext Class

The log4net Thread Context.

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

System.Object
���log4net.ThreadContext

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

Thread Safety

This type is safe for multithreaded operations.

Remarks

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

The 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 Thread Context provides a diagnostic context for the current thread. 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 Thread Context is managed on a per thread basis.

Example

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

[C#]
ThreadContext.Properties["user"] = userName;
log.Info("This log message has a ThreadContext Property called 'user'");
Example of how to push a message into the context stack
[C#]
using(ThreadContext.Stacks["NDC"].Push("my context message"))
{
    log.Info("This log message has a ThreadContext 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

ThreadContext Members | log4net Namespace