blob: 67a9dd7ef233436ed261846bfcde48f6b1ec8a28 [file] [log] [blame]
<html dir="LTR">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252" />
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" />
<title>ThreadContext Class</title>
<xml>
</xml>
<link rel="stylesheet" type="text/css" href="MSDN.css" />
</head>
<body id="bodyID" class="dtBODY">
<div id="nsbanner">
<div id="bannerrow1">
<table class="bannerparthead" cellspacing="0">
<tr id="hdr">
<td class="runninghead">Apache log4net� SDK Documentation - Microsoft .NET Framework 4.0</td>
<td class="product">
</td>
</tr>
</table>
</div>
<div id="TitleRow">
<h1 class="dtH1">ThreadContext Class</h1>
</div>
</div>
<div id="nstext">
<p> The log4net Thread Context. </p>
<p>For a list of all members of this type, see <a href="log4net.ThreadContextMembers.html">ThreadContext Members</a>.</p>
<p>
<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemObjectClassTopic.htm">System.Object</a>
<br />���<b>log4net.ThreadContext</b></p>
<div class="syntax">
<span class="lang">[Visual�Basic]</span>
<br />NotInheritable�Public�Class�ThreadContext</div>
<div class="syntax">
<span class="lang">[C#]</span>
<div>public�sealed�class�ThreadContext</div>
</div>
<H4 class="dtH4">Thread Safety</H4>
<P>This type is safe for multithreaded operations.</P>
<h4 class="dtH4">Remarks</h4>
<p> The <code>ThreadContext</code> provides a location for thread specific debugging information to be stored. The <code>ThreadContext</code> properties override any <a href="log4net.GlobalContext.html">GlobalContext</a> properties with the same name. </p>
<p> The thread context has a properties map and a stack. The properties and stack can be included in the output of log messages. The <a href="log4net.Layout.PatternLayout.html">PatternLayout</a> supports selecting and outputting these properties. </p>
<p> 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. </p>
<p> The Thread Context is managed on a per thread basis. </p>
<h4 class="dtH4">Example</h4><p>Example of using the thread context properties to store a username. <pre class="code"><span class="lang">[C#]
</span>ThreadContext.Properties["user"] = userName;
log.Info("This log message has a ThreadContext Property called 'user'");
</pre>
Example of how to push a message into the context stack <pre class="code"><span class="lang">[C#]
</span>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
</pre>
</p><h4 class="dtH4">Requirements</h4><p><b>Namespace: </b><a href="log4net.html">log4net</a></p><p><b>Assembly: </b>log4net (in log4net.dll)
</p><h4 class="dtH4">See Also</h4><p><a href="log4net.ThreadContextMembers.html">ThreadContext Members</a> | <a href="log4net.html">log4net Namespace</a></p><object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e" viewastext="true" style="display: none;"><param name="Keyword" value="ThreadContext class, about ThreadContext class"></param></object><hr /><div id="footer"><a href='http://logging.apache.org/log4net/'>Copyright 2004-2011 The Apache Software Foundation.</a><br></br>Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.</div></div>
</body>
</html>