﻿<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>Hierarchy Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Hierarchy class" /><meta name="System.Keywords" content="log4net.Repository.Hierarchy.Hierarchy class" /><meta name="System.Keywords" content="Hierarchy class, about Hierarchy class" /><meta name="Microsoft.Help.F1" content="log4net.Repository.Hierarchy.Hierarchy" /><meta name="Microsoft.Help.Id" content="T:log4net.Repository.Hierarchy.Hierarchy" /><meta name="Description" content="Hierarchical organization of loggers" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="log4net.Repository.Hierarchy" /><meta name="file" content="T_log4net_Repository_Hierarchy_Hierarchy" /><meta name="guid" content="T_log4net_Repository_Hierarchy_Hierarchy" /></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">Hierarchy 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">
            Hierarchical organization of loggers
            </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><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST948B6719_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">log4net.Repository<span id="LST948B6719_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>LoggerRepositorySkeleton</a><br />    <span class="selflink">log4net.Repository.Hierarchy<span id="LST948B6719_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Hierarchy</span><br /><p> </p><strong>Namespace:</strong> <a href="N_log4net_Repository_Hierarchy.htm">log4net.Repository.Hierarchy</a><br /><strong>Assembly:</strong> log4net (in log4net.dll) Version: 2.0.6.0-.NET 4.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 class="OH_CodeSnippetContainer"><div class="OH_CodeSnippetContainerTabs"><div class="OH_CodeSnippetContainerTabLeft" id="ID0EDCA_tabimgleft"> </div><div id="ID0EDCA_tab1" class="OH_CodeSnippetContainerTabFirst"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="OH_CodeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="OH_CodeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="OH_CodeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div><div class="OH_CodeSnippetContainerTabRight" id="ID0EDCA_tabimgright"> </div></div><div class="OH_CodeSnippetContainerCodeCollection"><div class="OH_CodeSnippetToolBar"><div class="OH_CodeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="OH_CodeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">Hierarchy</span> : <span class="identifier">LoggerRepositorySkeleton</span>, <span class="identifier">IBasicRepositoryConfigurator</span>, 
	<span class="identifier">IXmlRepositoryConfigurator</span></pre></div><div id="ID0EDCA_code_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">Hierarchy</span>
	<span class="keyword">Inherits</span> <span class="identifier">LoggerRepositorySkeleton</span>
	<span class="keyword">Implements</span> <span class="identifier">IBasicRepositoryConfigurator</span>, <span class="identifier">IXmlRepositoryConfigurator</span></pre></div><div id="ID0EDCA_code_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">Hierarchy</span> : <span class="keyword">public</span> <span class="identifier">LoggerRepositorySkeleton</span>, 
	<span class="identifier">IBasicRepositoryConfigurator</span>, <span class="identifier">IXmlRepositoryConfigurator</span></pre></div><div id="ID0EDCA_code_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">Hierarchy</span> =  
    <span class="keyword">class</span>
        <span class="keyword">inherit</span> <span class="identifier">LoggerRepositorySkeleton</span>
        <span class="keyword">interface</span> <span class="identifier">IBasicRepositoryConfigurator</span>
        <span class="keyword">interface</span> <span class="identifier">IXmlRepositoryConfigurator</span>
    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><p>The <span class="selflink">Hierarchy</span> type exposes the following members.</p><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Constructors</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="memberList" class="members"><tr><th class="ps_iconColumn">
								 
							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy__ctor.htm">Hierarchy<span id="LST948B6719_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_3?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a></td><td><div class="summary">
            Default constructor
            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy__ctor_1.htm">Hierarchy(ILoggerFactory)</a></td><td><div class="summary">
            Construct with a logger factory
            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy__ctor_2.htm">Hierarchy(PropertiesDictionary)</a></td><td><div class="summary">
            Construct with properties
            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy__ctor_3.htm">Hierarchy(PropertiesDictionary, ILoggerFactory)</a></td><td><div class="summary">
            Construct with properties and a logger factory
            </div></td></tr></table><a href="#mainBody">Top</a><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Properties</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="memberList" class="members"><tr><th class="ps_iconColumn">
								 
							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Repository_LoggerRepositorySkeleton_ConfigurationMessages.htm">ConfigurationMessages</a></td><td><div class="summary">
            Contains a list of internal messages captures during the 
            last configuration.
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Repository_LoggerRepositorySkeleton_Configured.htm">Configured</a></td><td><div class="summary">
            Flag indicates if this repository has been configured.
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Repository_Hierarchy_Hierarchy_EmittedNoAppenderWarning.htm">EmittedNoAppenderWarning</a></td><td><div class="summary">
            Has no appender warning been emitted
            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Repository_LoggerRepositorySkeleton_LevelMap.htm">LevelMap</a></td><td><div class="summary">
            Get the level map for the Repository.
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Repository_Hierarchy_Hierarchy_LoggerFactory.htm">LoggerFactory</a></td><td><div class="summary">
            Gets or sets the default <a href="T_log4net_Repository_Hierarchy_ILoggerFactory.htm">ILoggerFactory</a> instance.
            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Repository_LoggerRepositorySkeleton_Name.htm">Name</a></td><td><div class="summary">
            The name of the repository
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Repository_LoggerRepositorySkeleton_PluginMap.htm">PluginMap</a></td><td><div class="summary">
            The plugin map for this repository.
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Repository_LoggerRepositorySkeleton_Properties.htm">Properties</a></td><td><div class="summary">
            Repository specific properties
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Repository_LoggerRepositorySkeleton_RendererMap.htm">RendererMap</a></td><td><div class="summary">
            RendererMap accesses the object renderer map for this repository.
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Repository_Hierarchy_Hierarchy_Root.htm">Root</a></td><td><div class="summary">
            Get the root of this hierarchy
            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Repository_LoggerRepositorySkeleton_Threshold.htm">Threshold</a></td><td><div class="summary">
            The threshold for all events in this repository
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr></table><a href="#mainBody">Top</a><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Methods</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="memberList" class="members"><tr><th class="ps_iconColumn">
								 
							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_LoggerRepositorySkeleton_AddRenderer.htm">AddRenderer</a></td><td><div class="summary">
            Adds an object renderer for a specific class. 
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="protected;declared;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_BasicRepositoryConfigure.htm">BasicRepositoryConfigure</a></td><td><div class="summary">
            Initialize the log4net system using the specified appenders
            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_Clear.htm">Clear</a></td><td><div class="summary">
            Clear all logger definitions from the internal hashtable
            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">
                    Determines whether the specified <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a> is equal to the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.
                </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_Exists.htm">Exists</a></td><td><div class="summary">
            Test if a logger exists
            </div> (Overrides <a href="M_log4net_Repository_LoggerRepositorySkeleton_Exists.htm">LoggerRepositorySkeleton<span id="LST948B6719_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Exists(String)</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">
                    Allows an <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a> to attempt to free resources and perform other cleanup operations before the <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a> is reclaimed by garbage collection.
                </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_LoggerRepositorySkeleton_Flush.htm">Flush</a></td><td><div class="summary">
            Flushes all configured Appenders that implement <a href="T_log4net_Appender_IFlushable.htm">IFlushable</a>.
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_GetAppenders.htm">GetAppenders</a></td><td><div class="summary">
            Returns all the Appenders that are currently configured
            </div> (Overrides <a href="M_log4net_Repository_LoggerRepositorySkeleton_GetAppenders.htm">LoggerRepositorySkeleton<span id="LST948B6719_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>GetAppenders<span id="LST948B6719_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_6?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_GetCurrentLoggers.htm">GetCurrentLoggers</a></td><td><div class="summary">
            Returns all the currently defined loggers in the hierarchy as an Array
            </div> (Overrides <a href="M_log4net_Repository_LoggerRepositorySkeleton_GetCurrentLoggers.htm">LoggerRepositorySkeleton<span id="LST948B6719_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>GetCurrentLoggers<span id="LST948B6719_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_8?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">
                    Serves as a hash function for a particular type. 
                </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_GetLogger.htm">GetLogger(String)</a></td><td><div class="summary">
            Return a new logger instance named as the first parameter using
            the default factory.
            </div> (Overrides <a href="M_log4net_Repository_LoggerRepositorySkeleton_GetLogger.htm">LoggerRepositorySkeleton<span id="LST948B6719_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>GetLogger(String)</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_GetLogger_1.htm">GetLogger(String, ILoggerFactory)</a></td><td><div class="summary">
            Return a new logger instance named as the first parameter using
            <span class="parameter">factory</span>.
            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">
                    Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.
                </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_IsDisabled.htm">IsDisabled</a></td><td><div class="summary">
            Test if this hierarchy is disabled for the specified <a href="T_log4net_Core_Level.htm">Level</a>.
            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_Log.htm">Log</a></td><td><div class="summary">
            Log the logEvent through this hierarchy.
            </div> (Overrides <a href="M_log4net_Repository_LoggerRepositorySkeleton_Log.htm">LoggerRepositorySkeleton<span id="LST948B6719_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Log(LoggingEvent)</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">
                    Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.
                </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="M_log4net_Repository_LoggerRepositorySkeleton_OnConfigurationChanged.htm">OnConfigurationChanged</a></td><td><div class="summary">
            Notify the registered listeners that the repository has had its configuration changed
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="M_log4net_Repository_LoggerRepositorySkeleton_OnConfigurationReset.htm">OnConfigurationReset</a></td><td><div class="summary">
            Notify the registered listeners that the repository has had its configuration reset
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="protected;declared;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_OnLoggerCreationEvent.htm">OnLoggerCreationEvent</a></td><td><div class="summary">
            Sends a logger creation event to all registered listeners
            </div></td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="M_log4net_Repository_LoggerRepositorySkeleton_OnShutdown.htm">OnShutdown</a></td><td><div class="summary">
            Notify the registered listeners that the repository is shutting down
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_LoggerRepositorySkeleton_RaiseConfigurationChanged.htm">RaiseConfigurationChanged</a></td><td><div class="summary">
            Raise a configuration changed event on this repository
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_ResetConfiguration.htm">ResetConfiguration</a></td><td><div class="summary">
            Reset all values contained in this hierarchy instance to their default.
            </div> (Overrides <a href="M_log4net_Repository_LoggerRepositorySkeleton_ResetConfiguration.htm">LoggerRepositorySkeleton<span id="LST948B6719_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ResetConfiguration<span id="LST948B6719_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_12?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_Shutdown.htm">Shutdown</a></td><td><div class="summary">
            Shutting down a hierarchy will <i>safely</i> close and remove
            all appenders in all loggers including the root logger.
            </div> (Overrides <a href="M_log4net_Repository_LoggerRepositorySkeleton_Shutdown.htm">LoggerRepositorySkeleton<span id="LST948B6719_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_13?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Shutdown<span id="LST948B6719_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST948B6719_14?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">
                    Returns a <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a> that represents the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.
                </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;declared;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="M_log4net_Repository_Hierarchy_Hierarchy_XmlRepositoryConfigure.htm">XmlRepositoryConfigure</a></td><td><div class="summary">
            Initialize the log4net system using the specified config
            </div></td></tr></table><a href="#mainBody">Top</a><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Events</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="memberList" class="members"><tr><th class="ps_iconColumn">
								 
							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubevent.gif" alt="Public event" title="Public event" /></td><td><a href="E_log4net_Repository_LoggerRepositorySkeleton_ConfigurationChanged.htm">ConfigurationChanged</a></td><td><div class="summary">
            Event to notify that the repository has had its configuration changed.
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubevent.gif" alt="Public event" title="Public event" /></td><td><a href="E_log4net_Repository_LoggerRepositorySkeleton_ConfigurationReset.htm">ConfigurationReset</a></td><td><div class="summary">
            Event to notify that the repository has had its configuration reset.
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubevent.gif" alt="Public event" title="Public event" /></td><td><a href="E_log4net_Repository_Hierarchy_Hierarchy_LoggerCreatedEvent.htm">LoggerCreatedEvent</a></td><td><div class="summary">
            Event used to notify that a logger has been created.
            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubevent.gif" alt="Public event" title="Public event" /></td><td><a href="E_log4net_Repository_LoggerRepositorySkeleton_ShutdownEvent.htm">ShutdownEvent</a></td><td><div class="summary">
            Event to notify that the repository has been shutdown.
            </div> (Inherited from <a href="T_log4net_Repository_LoggerRepositorySkeleton.htm">LoggerRepositorySkeleton</a>.)</td></tr></table><a href="#mainBody">Top</a><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><i>The casual user should not have to deal with this class
            directly.</i></p><p>
            This class is specialized in retrieving loggers by name and
            also maintaining the logger hierarchy. Implements the 
            <a href="T_log4net_Repository_ILoggerRepository.htm">ILoggerRepository</a> interface.
            </p><p>
            The structure of the logger hierarchy is maintained by the
            <span class="nolink">[M:GetLogger(string)]</span> method. The hierarchy is such that children
            link to their parent but parents do not have any references to their
            children. Moreover, loggers can be instantiated in any order, in
            particular descendant before ancestor.
            </p><p>
            In case a descendant is created before a particular ancestor,
            then it creates a provision node for the ancestor and adds itself
            to the provision node. Other descendants of the same ancestor add
            themselves to the previously created provision node.
            </p><div class="OH_CollapsibleAreaRegion" id="seeAlsoSection"><div class="OH_regiontitle">See Also</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_log4net_Repository_Hierarchy.htm">log4net.Repository.Hierarchy Namespace</a></div></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-2016 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>