﻿<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><style type="text/css">.OH_CodeSnippetContainerTabLeftActive, .OH_CodeSnippetContainerTabLeft,.OH_CodeSnippetContainerTabLeftDisabled { }.OH_CodeSnippetContainerTabRightActive, .OH_CodeSnippetContainerTabRight,.OH_CodeSnippetContainerTabRightDisabled { }.OH_footer { }</style><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>log4net.Util Namespace</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="log4net.Util namespace" /><meta name="Microsoft.Help.F1" content="log4net.Util" /><meta name="Microsoft.Help.Id" content="N:log4net.Util" /><meta name="Description" content=" " /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="log4net.Util" /><meta name="file" content="N_log4net_Util" /><meta name="guid" content="N_log4net_Util" /><link type="text/css" rel="stylesheet" href="../styles/highlight.css" /><script type="text/javascript" src="../scripts/highlight.js"> </script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="OH_outerDiv"><div class="OH_outerContent"><table class="TitleTable"><tr><td class="OH_tdTitleColumn">log4net.Util Namespace</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"> </div><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Classes</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="typeList" class="members"><tr><th class="ps_iconColumn">
					 
				</th><th>Class</th><th>Description</th></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_AppenderAttachedImpl.htm">AppenderAttachedImpl</a></td><td><div class="summary">
            A straightforward implementation of the <a href="T_log4net_Core_IAppenderAttachable.htm">IAppenderAttachable</a> interface.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_CompositeProperties.htm">CompositeProperties</a></td><td><div class="summary">
            This class aggregates several PropertiesDictionary collections together.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_ContextPropertiesBase.htm">ContextPropertiesBase</a></td><td><div class="summary">
            Base class for Context Properties implementations
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_ConverterInfo.htm">ConverterInfo</a></td><td><div class="summary">
            Wrapper class used to map converter names to converter types
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_CountingQuietTextWriter.htm">CountingQuietTextWriter</a></td><td><div class="summary">
            Subclass of <a href="T_log4net_Util_QuietTextWriter.htm">QuietTextWriter</a> that maintains a count of 
            the number of bytes written.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_CyclicBuffer.htm">CyclicBuffer</a></td><td><div class="summary">
            A fixed size rolling buffer of logging events.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_EmptyCollection.htm">EmptyCollection</a></td><td><div class="summary">
            An always empty <a href="http://msdn2.microsoft.com/en-us/library/b1ht6113" target="_blank">ICollection</a>.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_EmptyDictionary.htm">EmptyDictionary</a></td><td><div class="summary">
            An always empty <a href="http://msdn2.microsoft.com/en-us/library/9dhwsays" target="_blank">IDictionary</a>.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_FormattingInfo.htm">FormattingInfo</a></td><td><div class="summary">
            Contain the information obtained when parsing formatting modifiers 
            in conversion modifiers.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_GlobalContextProperties.htm">GlobalContextProperties</a></td><td><div class="summary">
            Implementation of Properties collection for the <a href="T_log4net_GlobalContext.htm">GlobalContext</a></div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /><img src="../icons/CodeExample.png" alt="Code example" title="Code example" /></td><td><a href="T_log4net_Util_ILogExtensions.htm">ILogExtensions</a></td><td><div class="summary">
            The static class ILogExtensions contains a set of widely used
            methods that ease the interaction with the ILog interface implementations.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_LevelMapping.htm">LevelMapping</a></td><td><div class="summary">
            Manages a mapping from levels to <a href="T_log4net_Util_LevelMappingEntry.htm">LevelMappingEntry</a></div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_LevelMappingEntry.htm">LevelMappingEntry</a></td><td><div class="summary">
            An entry in the <a href="T_log4net_Util_LevelMapping.htm">LevelMapping</a></div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_LogicalThreadContextProperties.htm">LogicalThreadContextProperties</a></td><td><div class="summary">
            Implementation of Properties collection for the <a href="T_log4net_LogicalThreadContext.htm">LogicalThreadContext</a></div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_LogicalThreadContextStack.htm">LogicalThreadContextStack</a></td><td><div class="summary">
            Implementation of Stack for the <a href="T_log4net_LogicalThreadContext.htm">LogicalThreadContext</a></div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_LogicalThreadContextStacks.htm">LogicalThreadContextStacks</a></td><td><div class="summary">
            Implementation of Stacks collection for the <a href="T_log4net_LogicalThreadContext.htm">LogicalThreadContext</a></div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_LogLog.htm">LogLog</a></td><td><div class="summary">
            Outputs log statements from within the log4net assembly.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_LogLog_LogReceivedAdapter.htm">LogLog<span id="LST77FC8339_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77FC8339_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>LogReceivedAdapter</a></td><td><div class="summary">
            Subscribes to the LogLog.LogReceived event and stores messages
            to the supplied IList instance.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_LogReceivedEventArgs.htm">LogReceivedEventArgs</a></td><td><div class="summary" /></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_NativeError.htm">NativeError</a></td><td><div class="summary">
            Represents a native error code and message.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_NullDictionaryEnumerator.htm">NullDictionaryEnumerator</a></td><td><div class="summary">
            An always empty <a href="http://msdn2.microsoft.com/en-us/library/ebe1zk2c" target="_blank">IDictionaryEnumerator</a>.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_NullEnumerator.htm">NullEnumerator</a></td><td><div class="summary">
            An always empty <a href="http://msdn2.microsoft.com/en-us/library/1t2267t6" target="_blank">IEnumerator</a>.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_NullSecurityContext.htm">NullSecurityContext</a></td><td><div class="summary">
            A SecurityContext used when a SecurityContext is not required
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_OnlyOnceErrorHandler.htm">OnlyOnceErrorHandler</a></td><td><div class="summary">
            Implements log4net's default error handling policy which consists 
            of emitting a message for the first error in an appender and 
            ignoring all subsequent errors.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_OptionConverter.htm">OptionConverter</a></td><td><div class="summary">
            A convenience class to convert property values to specific types.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_PatternConverter.htm">PatternConverter</a></td><td><div class="summary">
            Abstract class that provides the formatting functionality that 
            derived classes need.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_PatternParser.htm">PatternParser</a></td><td><div class="summary">
            Most of the work of the <a href="T_log4net_Layout_PatternLayout.htm">PatternLayout</a> class
            is delegated to the PatternParser class.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_PatternString.htm">PatternString</a></td><td><div class="summary">
            This class implements a patterned string.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_PropertiesDictionary.htm">PropertiesDictionary</a></td><td><div class="summary">
            String keyed object map.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_PropertyEntry.htm">PropertyEntry</a></td><td><div class="summary">
            A class to hold the key and data for a property set in the config file
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_ProtectCloseTextWriter.htm">ProtectCloseTextWriter</a></td><td><div class="summary">
            A <a href="http://msdn2.microsoft.com/en-us/library/ywxh2328" target="_blank">TextWriter</a> that ignores the <a href="M_log4net_Util_ProtectCloseTextWriter_Close.htm">Close<span id="LST77FC8339_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77FC8339_1?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a> message
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_QuietTextWriter.htm">QuietTextWriter</a></td><td><div class="summary"><a href="http://msdn2.microsoft.com/en-us/library/ywxh2328" target="_blank">TextWriter</a> that does not leak exceptions
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_ReaderWriterLock.htm">ReaderWriterLock</a></td><td><div class="summary">
            Defines a lock that supports single writers and multiple readers
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_ReadOnlyPropertiesDictionary.htm">ReadOnlyPropertiesDictionary</a></td><td><div class="summary">
            String keyed object map that is read only.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_ReusableStringWriter.htm">ReusableStringWriter</a></td><td><div class="summary">
            A <a href="http://msdn2.microsoft.com/en-us/library/hs9kt2e9" target="_blank">StringWriter</a> that can be <a href="M_log4net_Util_ReusableStringWriter_Reset.htm">Reset(Int32, Int32)</a> and reused
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_SystemInfo.htm">SystemInfo</a></td><td><div class="summary">
            Utility class for system specific information.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_SystemStringFormat.htm">SystemStringFormat</a></td><td><div class="summary">
            Utility class that represents a format string.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_TextWriterAdapter.htm">TextWriterAdapter</a></td><td><div class="summary">
            Adapter that extends <a href="http://msdn2.microsoft.com/en-us/library/ywxh2328" target="_blank">TextWriter</a> and forwards all
            messages to an instance of <a href="http://msdn2.microsoft.com/en-us/library/ywxh2328" target="_blank">TextWriter</a>.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_ThreadContextProperties.htm">ThreadContextProperties</a></td><td><div class="summary">
            Implementation of Properties collection for the <a href="T_log4net_ThreadContext.htm">ThreadContext</a></div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_ThreadContextStack.htm">ThreadContextStack</a></td><td><div class="summary">
            Implementation of Stack for the <a href="T_log4net_ThreadContext.htm">ThreadContext</a></div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_ThreadContextStacks.htm">ThreadContextStacks</a></td><td><div class="summary">
            Implementation of Stacks collection for the <a href="T_log4net_ThreadContext.htm">ThreadContext</a></div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_Transform.htm">Transform</a></td><td><div class="summary">
            Utility class for transforming strings.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Util_WindowsSecurityContext.htm">WindowsSecurityContext</a></td><td><div class="summary">
            Impersonate a Windows Account
            </div></td></tr></table><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Delegates</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="typeList" class="members"><tr><th class="ps_iconColumn">
					 
				</th><th>Delegate</th><th>Description</th></tr><tr data="delegate; public"><td><img src="../icons/pubdelegate.gif" alt="Public delegate" title="Public delegate" /></td><td><a href="T_log4net_Util_LogReceivedEventHandler.htm">LogReceivedEventHandler</a></td><td><div class="summary" /></td></tr><tr data="delegate; public"><td><img src="../icons/pubdelegate.gif" alt="Public delegate" title="Public delegate" /></td><td><a href="T_log4net_Util_TwoArgAction_2.htm">TwoArgAction<span id="LST77FC8339_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77FC8339_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T1, T2<span id="LST77FC8339_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77FC8339_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
            Delegate type used for LogicalThreadContextStack's callbacks.
            </div></td></tr></table><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Enumerations</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="typeList" class="members"><tr><th class="ps_iconColumn">
					 
				</th><th>Enumeration</th><th>Description</th></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_log4net_Util_WindowsSecurityContext_ImpersonationMode.htm">WindowsSecurityContext<span id="LST77FC8339_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77FC8339_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ImpersonationMode</a></td><td><div class="summary">
            The impersonation modes for the <a href="T_log4net_Util_WindowsSecurityContext.htm">WindowsSecurityContext</a></div></td></tr></table></div></div></div></div><div id="OH_footer" class="OH_footer">Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.<p><a href="http://logging.apache.org/log4net/" target="_blank">Copyright 2004-2017 The Apache Software Foundation</a></p><div class="OH_feedbacklink">Send comments on this topic to
        <a id="HT_MailLink" href="mailto:http%3A%2F%2Flogging.apache.org%2Flog4net%2Fmail-lists.html?Subject=Apache log4net™ SDK Documentation">http://logging.apache.org/log4net/mail-lists.html</a></div><script type="text/javascript">
        var HT_mailLink = document.getElementById("HT_MailLink");
        var HT_mailLinkText = HT_mailLink.innerHTML;
        HT_mailLink.href += ": " + document.title + "\u0026body=" + encodeURIComponent("Your feedback is used to improve the documentation and the product. Your e-mail address will not be used for any other purpose and is disposed of after the issue you report is resolved. While working to resolve the issue that you report, you may be contacted via e-mail to get further details or clarification on the feedback you sent. After the issue you report has been addressed, you may receive an e-mail to let you know that your feedback has been addressed.");
        HT_mailLink.innerHTML = HT_mailLinkText;
        </script> </div></body></html>