blob: 3f441a8a42572e1fd7aca9f698270e3a1c2e6cea [file] [log] [blame]
<html xmlns:MSHelp="http://msdn.microsoft.com/mshelp" xmlns:mshelp="http://msdn.microsoft.com/mshelp"><head><link rel="SHORTCUT ICON" href="./../icons/favicon.ico" /><style type="text/css">.OH_CodeSnippetContainerTabLeftActive, .OH_CodeSnippetContainerTabLeft,.OH_CodeSnippetContainerTabLeftDisabled { backgroundImageName: tabLeftBG.gif; }.OH_CodeSnippetContainerTabRightActive, .OH_CodeSnippetContainerTabRight,.OH_CodeSnippetContainerTabRightDisabled { backgroundImageName: tabRightBG.gif; }.OH_footer { backgroundImageName: footer_slice.gif; background-position: top; background-repeat: repeat-x; }</style><link rel="stylesheet" type="text/css" href="./../styles/branding.css" /><link rel="stylesheet" type="text/css" href="./../styles/branding-en-US.css" /><style type="text/css">
body
{
border-left:5px solid #e6e6e6;
overflow-x:scroll;
overflow-y:scroll;
}
</style><script src="./../scripts/branding.js" type="text/javascript"><!----></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>LogicalThreadContext Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="LogicalThreadContext class" /><meta name="System.Keywords" content="log4net.LogicalThreadContext class" /><meta name="System.Keywords" content="LogicalThreadContext class, about LogicalThreadContext class" /><meta name="Microsoft.Help.F1" content="log4net.LogicalThreadContext" /><meta name="Microsoft.Help.Id" content="T:log4net.LogicalThreadContext" /><meta name="Description" content="The log4net Logical Thread Context." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="'true'" /><meta name="container" content="log4net" /><meta name="file" content="T_log4net_LogicalThreadContext" /><meta name="guid" content="T_log4net_LogicalThreadContext" /><link type="text/css" rel="stylesheet" href="ms-help://Hx/HxRuntime/HxLink.css" /><link type="text/css" rel="stylesheet" href="./../styles/highlight.css" /><script type="text/javascript" src="../scripts/highlight.js"><!----></script><meta name="SelfBranded" content="true" /></head><body onload="onLoad()" class="primary-mtps-offline-document"><div class="OH_outerDiv"><div class="OH_outerContent"><table class="TitleTable"><tr><td class="OH_tdTitleColumn">LogicalThreadContext Class</td><td class="OH_tdRunningTitleColumn">Apache log4net™ SDK Documentation</td></tr></table><div id="mainSection"><div id="mainBody"><span class="introStyle"></span><div class="summary">
The log4net Logical Thread Context.
</div><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Inheritance Hierarchy</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div><img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="ID0EBEQAAAAA"> </span><script type="text/javascript">
addToLanSpecTextIdSet("ID0EBEQAAAAA?vb=.|cpp=::|cs=.|fs=.|nu=.");
</script>Object</a><br />  <span class="selflink">log4net<span id="ID0EBBQAAAAA"> </span><script type="text/javascript">
addToLanSpecTextIdSet("ID0EBBQAAAAA?vb=.|cpp=::|cs=.|fs=.|nu=.");
</script>LogicalThreadContext</span><br /><p></p><b>Namespace:</b> <a href="N_log4net.htm" target="">log4net</a><br /><b>Assembly:</b> <span sdata="assembly">log4net</span> (in log4net.dll) Version: 1.2.14.0 (1.2.14.0)<div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Syntax</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div><div id="snippetGroup_Syntax" class="code"><div id="ID0ECAGAAAAA" class="OH_CodeSnippetContainer"><div class="OH_CodeSnippetContainerTabs" id="ID0ECAGAAAAA_tabs"><div class="OH_CodeSnippetContainerTabLeftActive" id="ID0ECAGAAAAA_tabimgleft"></div><div id="ID0ECAGAAAAA_tab1" class="OH_CodeSnippetContainerTabActive" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0ECAGAAAAA','C#','1','4');return false;">C#</a></div><div id="ID0ECAGAAAAA_tab2" class="OH_CodeSnippetContainerTab" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0ECAGAAAAA','Visual Basic','2','4');return false;">VB</a></div><div id="ID0ECAGAAAAA_tab3" class="OH_CodeSnippetContainerTab" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0ECAGAAAAA','Visual C++','3','4');return false;">C++</a></div><div id="ID0ECAGAAAAA_tab4" class="OH_CodeSnippetContainerTabDisabledNotFirst" EnableCopyCode="true" disabled="true"><a>F#</a></div><div class="OH_CodeSnippetContainerTabRight" id="ID0ECAGAAAAA_tabimgright"></div></div><div id="ID0ECAGAAAAA_codecollection" class="OH_CodeSnippetContainerCodeCollection"><div class="OH_CodeSnippetToolBar"><div class="OH_CodeSnippetToolBarText"><a id="ID0ECAGAAAAA_ViewColorized" href="#" onclick="javascript:ExchangeTitleContent('ID0ECAGAAAAA','4')" title="View Colorized" style="display: none">View Colorized</a><a id="ID0ECAGAAAAA_copycode" href="#" onclick="javascript:CopyToClipboard('ID0ECAGAAAAA','4')" title="Copy to Clipboard">Copy to Clipboard</a><a id="ID0ECAGAAAAA_PrintText" class="OH_PrintText" href="#" onclick="javascript:Print('ID0ECAGAAAAA','4')" title="Print">Print</a></div></div><div id="ID0ECAGAAAAA_code_Div1" class="OH_CodeSnippetContainerCode" style="display: block"><pre><span class="keyword">public</span> <span class="keyword">sealed</span> <span class="keyword">class</span> <span class="identifier">LogicalThreadContext</span></pre></div><div id="ID0ECAGAAAAA_code_Plain_Div1" class="OH_CodeSnippetContainerCode" style="display: none"><pre>public sealed class LogicalThreadContext</pre></div><div id="ID0ECAGAAAAA_code_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">LogicalThreadContext</span></pre></div><div id="ID0ECAGAAAAA_code_Plain_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre>Public NotInheritable Class LogicalThreadContext</pre></div><div id="ID0ECAGAAAAA_code_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">LogicalThreadContext</span> <span class="keyword">sealed</span></pre></div><div id="ID0ECAGAAAAA_code_Plain_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre>public ref class LogicalThreadContext sealed</pre></div><div id="ID0ECAGAAAAA_code_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0ECAGAAAAA_code_Plain_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div></div></div><script>addSpecificTextLanguageTagSet('ID0ECAGAAAAA');</script></div><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Remarks</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div><p>
The <span class="code">LogicalThreadContext</span> provides a location for <img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/c9tkcy8b" target="_blank">CallContext</a> specific debugging
information to be stored.
The <span class="code">LogicalThreadContext</span> properties override any <a href="T_log4net_ThreadContext.htm" target="">ThreadContext</a> or <a href="T_log4net_GlobalContext.htm" target="">GlobalContext</a>
properties with the same name.
</p><p>
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 <a href="T_log4net_Layout_PatternLayout.htm" target="">PatternLayout</a>
supports selecting and outputting these properties.
</p><p>
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.
</p><p>
The Logical Thread Context is managed on a per <img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/c9tkcy8b" target="_blank">CallContext</a> basis.
</p><p>
The <img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/c9tkcy8b" target="_blank">CallContext</a> requires a link time
<img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/k820e6k8" target="_blank">SecurityPermission</a> for the
<img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/xc5yzfbx" target="_blank">Infrastructure</a>.
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.
</p><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Examples</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div>Example of using the thread context properties to store a username.
<div id="ID0EAEAAAAA" class="OH_CodeSnippetContainer"><div class="OH_CodeSnippetContainerTabs" id="ID0EAEAAAAA_tabs"><div class="OH_CodeSnippetContainerTabLeftActive" id="ID0EAEAAAAA_tabimgleft"></div><div id="ID0EAEAAAAA_tab1" class="OH_CodeSnippetContainerTabActive" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0EAEAAAAA','C#','1','4');return false;">C#</a></div><div id="ID0EAEAAAAA_tab2" class="OH_CodeSnippetContainerTabDisabledNotFirst" EnableCopyCode="true" disabled="true"><a>VB</a></div><div id="ID0EAEAAAAA_tab3" class="OH_CodeSnippetContainerTabDisabledNotFirst" EnableCopyCode="true" disabled="true"><a>C++</a></div><div id="ID0EAEAAAAA_tab4" class="OH_CodeSnippetContainerTabDisabledNotFirst" EnableCopyCode="true" disabled="true"><a>F#</a></div><div class="OH_CodeSnippetContainerTabRight" id="ID0EAEAAAAA_tabimgright"></div></div><div id="ID0EAEAAAAA_codecollection" class="OH_CodeSnippetContainerCodeCollection"><div class="OH_CodeSnippetToolBar"><div class="OH_CodeSnippetToolBarText"><a id="ID0EAEAAAAA_ViewColorized" href="#" onclick="javascript:ExchangeTitleContent('ID0EAEAAAAA','4')" title="View Colorized" style="display: none">View Colorized</a><a id="ID0EAEAAAAA_copycode" href="#" onclick="javascript:CopyToClipboard('ID0EAEAAAAA','4')" title="Copy to Clipboard">Copy to Clipboard</a><a id="ID0EAEAAAAA_PrintText" class="OH_PrintText" href="#" onclick="javascript:Print('ID0EAEAAAAA','4')" title="Print">Print</a></div></div><div id="ID0EAEAAAAA_code_Div1" class="OH_CodeSnippetContainerCode" style="display: block"><pre>LogicalThreadContext.Properties[<span class="highlight-literal">"user"</span>] = userName;
log.Info(<span class="highlight-literal">"This log message has a LogicalThreadContext Property called 'user'"</span>);</pre></div><div id="ID0EAEAAAAA_code_Plain_Div1" class="OH_CodeSnippetContainerCode" style="display: none"><pre>LogicalThreadContext.Properties["user"] = userName;
log.Info("This log message has a LogicalThreadContext Property called 'user'");</pre></div><div id="ID0EAEAAAAA_code_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0EAEAAAAA_code_Plain_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0EAEAAAAA_code_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0EAEAAAAA_code_Plain_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0EAEAAAAA_code_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0EAEAAAAA_code_Plain_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div></div></div><script>addSpecificTextLanguageTagSet('ID0EAEAAAAA');</script><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Examples</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div>Example of how to push a message into the context stack
<div id="ID0EADAAAAA" class="OH_CodeSnippetContainer"><div class="OH_CodeSnippetContainerTabs" id="ID0EADAAAAA_tabs"><div class="OH_CodeSnippetContainerTabLeftActive" id="ID0EADAAAAA_tabimgleft"></div><div id="ID0EADAAAAA_tab1" class="OH_CodeSnippetContainerTabActive" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0EADAAAAA','C#','1','4');return false;">C#</a></div><div id="ID0EADAAAAA_tab2" class="OH_CodeSnippetContainerTabDisabledNotFirst" EnableCopyCode="true" disabled="true"><a>VB</a></div><div id="ID0EADAAAAA_tab3" class="OH_CodeSnippetContainerTabDisabledNotFirst" EnableCopyCode="true" disabled="true"><a>C++</a></div><div id="ID0EADAAAAA_tab4" class="OH_CodeSnippetContainerTabDisabledNotFirst" EnableCopyCode="true" disabled="true"><a>F#</a></div><div class="OH_CodeSnippetContainerTabRight" id="ID0EADAAAAA_tabimgright"></div></div><div id="ID0EADAAAAA_codecollection" class="OH_CodeSnippetContainerCodeCollection"><div class="OH_CodeSnippetToolBar"><div class="OH_CodeSnippetToolBarText"><a id="ID0EADAAAAA_ViewColorized" href="#" onclick="javascript:ExchangeTitleContent('ID0EADAAAAA','4')" title="View Colorized" style="display: none">View Colorized</a><a id="ID0EADAAAAA_copycode" href="#" onclick="javascript:CopyToClipboard('ID0EADAAAAA','4')" title="Copy to Clipboard">Copy to Clipboard</a><a id="ID0EADAAAAA_PrintText" class="OH_PrintText" href="#" onclick="javascript:Print('ID0EADAAAAA','4')" title="Print">Print</a></div></div><div id="ID0EADAAAAA_code_Div1" class="OH_CodeSnippetContainerCode" style="display: block"><pre><span class="highlight-keyword">using</span>(LogicalThreadContext.Stacks[<span class="highlight-literal">"LDC"</span>].Push(<span class="highlight-literal">"my context message"</span>))
{
log.Info(<span class="highlight-literal">"This log message has a LogicalThreadContext Stack message that includes 'my context message'"</span>);
} <span class="highlight-comment">// at the end of the using block the message is automatically popped</span></pre></div><div id="ID0EADAAAAA_code_Plain_Div1" class="OH_CodeSnippetContainerCode" style="display: none"><pre>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</pre></div><div id="ID0EADAAAAA_code_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0EADAAAAA_code_Plain_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0EADAAAAA_code_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0EADAAAAA_code_Plain_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0EADAAAAA_code_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0EADAAAAA_code_Plain_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div></div></div><script>addSpecificTextLanguageTagSet('ID0EADAAAAA');</script><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Thread Safety</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div>Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations. <a name="seeAlsoSection"><!----></a><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">See Also</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div><div class="seeAlsoStyle"><a href="AllMembers_T_log4net_LogicalThreadContext.htm" target="">LogicalThreadContext Members</a></div><div class="seeAlsoStyle"><a href="N_log4net.htm" target="">log4net Namespace</a></div></div></div></div></div><div id="OH_footer" class="OH_footer"><p>Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.</p><p><a href="http://logging.apache.org/log4net/" target="_blank"><img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /> 
Copyright 2004-2015 The Apache Software Foundation (http://logging.apache.org/log4net/)</a></p><div class="OH_feedbacklink"><a href="mailto:http://logging.apache.org/log4net/mail-lists.html?subject=Apache+log4net%e2%84%a2+SDK+Documentation+LogicalThreadContext+Class+100+EN-US&amp;body=Your%20feedback%20is%20used%20to%20improve%20the%20documentation%20and%20the%20product.%20Your%20e-mail%20address%20will%20not%20be%20used%20for%20any%20other%20purpose%20and%20is%20disposed%20of%20after%20the%20issue%20you%20report%20is%20resolved.%20While%20working%20to%20resolve%20the%20issue%20that%20you%20report%2c%20you%20may%20be%20contacted%20via%20e-mail%20to%20get%20further%20details%20or%20clarification%20on%20the%20feedback%20you%20sent.%20After%20the%20issue%20you%20report%20has%20been%20addressed%2c%20you%20may%20receive%20an%20e-mail%20to%20let%20you%20know%20that%20your%20feedback%20has%20been%20addressed.">Send Feedback</a> on this topic to http://logging.apache.org/log4net/mail-lists.html.</div></div></body></html>