Apache log4net� SDK Documentation - Microsoft .NET Framework 4.0

LogicalThreadContext Class

The log4net Logical Thread Context.

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



Thread Safety

This type is safe for multithreaded operations.


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.

The CallContext requires a link time SecurityPermission for the Infrastructure. If the calling code does not have this permission then this context will be disabled. It will not store any property values set on it.


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

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


Namespace: log4net

Assembly: log4net (in log4net.dll)

See Also

LogicalThreadContext Members | log4net Namespace