<html>
<head>
<title>
log4cxx - Documentation
</title>
<link href="../css/doxygen.css" rel="stylesheet" type="text/css"/>
</head>

<body bgcolor="#ffffff" text="#000000" link="#525D76">        
<!-- START Header table --> 
<table border="0" cellspacing="0" width="90%">
<!-- TOP IMAGE -->
<tr>
<td colspan="2">
<a href="http://logging.apache.org">
<img src="http://logging.apache.org/images/ls-logo.jpg" align="left" border="0"/>
</a>
</td>

</tr>
</table>
<!-- END Header table --> 

           <!-- START main table --> 
            <table id="main" border="0" width="90%" cellspacing="2" cellpadding="0">
                <tr><td colspan="2">
                    <hr noshade="" size="1"/>
                </td></tr>
                
                <tr>
                    <!-- LEFT SIDE NAVIGATION -->
                    <td id="navbar" valign="top">
                      <!-- ============================================================ -->
  <table id="navbar" border="0" cellspacing="0" cellpadding="0">
                      <tr >
       	 <td class="navbarHeader" nowrap="true">
           <strong>Apache</strong>
         </td>
       </tr>
              	 <tr><td class="navbarItem"><small>    <a href="http://www.apache.org">Apache Home</a>
</small></td></tr>
              	 <tr><td class="navbarItem"><small>    <a href="http://logging.apache.org/">Logging Services</a>
</small></td></tr>
                                <tr >
       	 <td class="navbarHeader" nowrap="true">
           <strong>log4cxx project</strong>
         </td>
       </tr>
              	 <tr><td class="navbarItem"><small>    <a href="../index.html">About</a>
</small></td></tr>
              	 <tr><td class="navbarItem"><small>    <a href="../news.html">News</a>
</small></td></tr>
              	 <tr><td class="navbarItem"><small>    <a href="../team.html">Team</a>
</small></td></tr>
              	 <tr><td class="navbarItem"><small>    <a href="../manual/index.html">Documentation</a>
</small></td></tr>
              	 <tr><td class="navbarItem"><small>    <a href="../performance.html">Performance</a>
</small></td></tr>
              	 <tr><td class="navbarItem"><small>    <a href="../download.html">Download</a>
</small></td></tr>
             </table> 
   
                    </td>
                    <td id="mainContents" align="left" valign="top">
<hr>
<!-- Generated by Doxygen 1.3.5 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
<h1>Hierarchy Class Reference</h1>Inheritance diagram for Hierarchy:<p><center><img src="classlog4cxx_1_1Hierarchy__inherit__graph.png" border="0" usemap="#Hierarchy__inherit__map" alt="Inheritance graph"></center>
<map name="Hierarchy__inherit__map">
<area href="classlog4cxx_1_1spi_1_1LoggerRepository.html" shape="rect" coords="7,86,124,105" alt="">
<area href="classlog4cxx_1_1helpers_1_1Object.html" shape="rect" coords="99,17,152,36" alt="">
<area href="classlog4cxx_1_1helpers_1_1ObjectImpl.html" shape="rect" coords="148,86,225,105" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for Hierarchy:<p><center><img src="classlog4cxx_1_1Hierarchy__coll__graph.png" border="0" usemap="#Hierarchy__coll__map" alt="Collaboration graph"></center>
<map name="Hierarchy__coll__map">
<area href="classlog4cxx_1_1spi_1_1LoggerRepository.html" shape="rect" coords="7,89,124,107" alt="">
<area href="classlog4cxx_1_1helpers_1_1Object.html" shape="rect" coords="107,17,160,35" alt="">
<area href="classlog4cxx_1_1helpers_1_1ObjectImpl.html" shape="rect" coords="148,89,225,107" alt="">
<area href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html" shape="rect" coords="249,89,324,107" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classlog4cxx_1_1Hierarchy-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a0">Hierarchy</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggerPtr</a> &amp;root)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a3">clear</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggerPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a5">exists</a> (const String &amp;name)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a6">setThreshold</a> (const String &amp;levelStr)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a7">setThreshold</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LevelPtr</a> &amp;l)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LevelPtr</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a10">getThreshold</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggerPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a11">getLogger</a> (const String &amp;name)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggerPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a12">getLogger</a> (const String &amp;name, <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::LoggerFactoryPtr</a> factory)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>LoggerList&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a13">getCurrentLoggers</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggerPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a14">getRootLogger</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a15">isDisabled</a> (int level) const </td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a16">resetConfiguration</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1Hierarchy.html#a17">shutdown</a> ()</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This class is specialized in retrieving loggers by name and also maintaining the logger hierarchy.<p>
<em>The casual user does not have to deal with this class directly.</em><p>
The structure of the logger hierarchy is maintained by the <a class="el" href="classlog4cxx_1_1Hierarchy.html#a11">getLogger</a> method. The hierarchy is such that children link to their parent but parents do not have any pointers to their children. Moreover, loggers can be instantiated in any order, in particular descendant before ancestor.<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>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="a0" doxytag="log4cxx::Hierarchy::Hierarchy" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classlog4cxx_1_1Hierarchy.html">Hierarchy</a> </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggerPtr</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>root</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Create a new logger hierarchy. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>root</em>&nbsp;</td><td>The root of the new hierarchy.</td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a3" doxytag="log4cxx::Hierarchy::clear" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void clear </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This call will clear all logger definitions from the internal hashtable. Invoking this method will irrevocably mess up the logger hierarchy.<p>
You should <em>really</em> know what you are doing before invoking this method.    </td>
  </tr>
</table>
<a class="anchor" name="a5" doxytag="log4cxx::Hierarchy::exists" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggerPtr</a> exists </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const String &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>name</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Check if the named logger exists in the hierarchy. If so return its reference, otherwise returns <code>null</code>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>name</em>&nbsp;</td><td>The name of the logger to search for.</td></tr>
  </table>
</dl>

<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1LoggerRepository.html">LoggerRepository</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a13" doxytag="log4cxx::Hierarchy::getCurrentLoggers" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> LoggerList getCurrentLoggers </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns all the currently defined loggers in this hierarchy as a LoggerList.<p>
The root logger is <em>not</em> included in the returned LoggerList. 
<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1LoggerRepository.html">LoggerRepository</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a12" doxytag="log4cxx::Hierarchy::getLogger" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggerPtr</a> getLogger </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const String &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>name</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::LoggerFactoryPtr</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>factory</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return a new logger instance named as the first parameter using <code>factory</code>.<p>
If a logger of that name already exists, then it will be returned. Otherwise, a new logger will be instantiated by the <code>factory</code> parameter and linked with its existing ancestors as well as children.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>name</em>&nbsp;</td><td>The name of the logger to retrieve. </td></tr>
    <tr><td valign=top><em>factory</em>&nbsp;</td><td>The factory that will make the new logger instance.</td></tr>
  </table>
</dl>

<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1LoggerRepository.html">LoggerRepository</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a11" doxytag="log4cxx::Hierarchy::getLogger" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggerPtr</a> getLogger </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const String &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>name</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return a new logger instance named as the first parameter using the default factory.<p>
If a logger of that name already exists, then it will be returned. Otherwise, a new logger will be instantiated and then linked with its existing ancestors as well as children.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>name</em>&nbsp;</td><td>The name of the logger to retrieve.</td></tr>
  </table>
</dl>

<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1LoggerRepository.html">LoggerRepository</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a14" doxytag="log4cxx::Hierarchy::getRootLogger" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LoggerPtr</a> getRootLogger </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the root of this hierarchy.
<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1LoggerRepository.html">LoggerRepository</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a10" doxytag="log4cxx::Hierarchy::getThreshold" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LevelPtr</a> &amp; getThreshold </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns a <a class="el" href="classlog4cxx_1_1Level.html">Level</a> representation of the <code>enable</code> state.
<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1LoggerRepository.html#a6">LoggerRepository</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a15" doxytag="log4cxx::Hierarchy::isDisabled" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> bool isDisabled </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>level</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This method will return <code>true</code> if this repository is disabled for <code>level</code> object passed as parameter and <code>false</code> otherwise. See also the <a class="el" href="classlog4cxx_1_1Hierarchy.html#a7">setThreshold</a> method. 
<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1LoggerRepository.html#a2">LoggerRepository</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a16" doxytag="log4cxx::Hierarchy::resetConfiguration" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void resetConfiguration </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Reset all values contained in this hierarchy instance to their default. This removes all appenders from all categories, sets the level of all non-root categories to <code>null</code>, sets their additivity flag to <code>true</code> and sets the level of the root logger to <a class="el" href="classlog4cxx_1_1Level.html#s5">DEBUG</a>. Moreover, message disabling is set its default "off" value.<p>
Existing categories are not removed. They are just reset.<p>
This method should be used sparingly and with care as it will block all logging until it is completed.
<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1LoggerRepository.html">LoggerRepository</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a7" doxytag="log4cxx::Hierarchy::setThreshold" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void setThreshold </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LevelPtr</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>l</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Enable logging for logging requests with level <code>l</code> or higher. By default all levels are enabled.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>l</em>&nbsp;</td><td>The minimum level for which logging requests are sent to their appenders. </td></tr>
  </table>
</dl>

<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1LoggerRepository.html#a3">LoggerRepository</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a6" doxytag="log4cxx::Hierarchy::setThreshold" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void setThreshold </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const String &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>levelStr</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The string form of <a class="el" href="classlog4cxx_1_1Hierarchy.html#a7">setThreshold</a>.
<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1LoggerRepository.html#a4">LoggerRepository</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a17" doxytag="log4cxx::Hierarchy::shutdown" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void shutdown </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Shutting down a hierarchy will <em>safely</em> close and remove all appenders in all categories including the root logger.<p>
Some appenders such as <a class="el" href="classlog4cxx_1_1net_1_1SocketAppender.html">SocketAppender</a> and <a class="el" href="classlog4cxx_1_1AsyncAppender.html">AsyncAppender</a> need to be closed before the application exists. Otherwise, pending logging events might be lost.<p>
The <code>shutdown</code> method is careful to close nested appenders before closing regular appenders. This is allows configurations where a regular appender is attached to a logger and again to a nested appender.
<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1LoggerRepository.html">LoggerRepository</a>.    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li>hierarchy.h<li>hierarchy.cpp</ul>
                                                
                    </td>
                </tr>
             
                <!-- FOOTER -->
                <tr><td colspan="2">
                    <hr noshade="" size="1"/>
                </td></tr>
                <tr><td colspan="2">
                    <div align="center"><font color="#525D76" size="-1"><em>
                    Copyright &#169; 1999-2004, Apache Software Foundation
                    </em></font></div>
                </td></tr>
            </table>
           <!-- END main table --> 
        </body>
    </html>
<!-- end the processing -->
