<html dir="LTR">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1252" />
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" />
    <title>LoggerManager.ShutdownRepository Method (String)</title>
    <xml>
    </xml>
    <link rel="stylesheet" type="text/css" href="MSDN.css" />
  </head>
  <body id="bodyID" class="dtBODY">
    <div id="nsbanner">
      <div id="bannerrow1">
        <table class="bannerparthead" cellspacing="0">
          <tr id="hdr">
            <td class="runninghead">Apache log4net� SDK Documentation - Microsoft .NET Framework 4.0</td>
            <td class="product">
            </td>
          </tr>
        </table>
      </div>
      <div id="TitleRow">
        <h1 class="dtH1">LoggerManager.ShutdownRepository�Method�(String)</h1>
      </div>
    </div>
    <div id="nstext">
      <p> Shuts down the repository for the repository specified. </p>
      <div class="syntax">
        <span class="lang">[Visual�Basic]</span>
        <br />Overloads�Public�Shared�Sub�ShutdownRepository( _<br />���ByVal <i>repository</i>�As�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemStringClassTopic.htm">String</a>�_<br />)</div>
      <div class="syntax">
        <span class="lang">[C#]</span>
        <br />public�static�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemVoidClassTopic.htm">void</a>�ShutdownRepository(<br />���<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemStringClassTopic.htm">string</a>�<i>repository</i><br />);</div>
      <h4 class="dtH4">Parameters</h4>
      <dl>
        <dt>
          <i>repository</i>
        </dt>
        <dd>The repository to shutdown.</dd>
      </dl>
      <h4 class="dtH4">Remarks</h4>
            <p> Calling this method will <b>safely</b> close and remove all appenders in all the loggers including root contained in the repository for the <i>repository</i> specified. </p>
            <p> Some appenders need to be closed before the application exists. Otherwise, pending logging events might be lost. </p>
            <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>
            <h4 class="dtH4">See Also</h4><p><a href="log4net.Core.LoggerManager.html">LoggerManager Class</a> | <a href="log4net.Core.html">log4net.Core Namespace</a> | <a href="log4net.Core.LoggerManager.ShutdownRepository_overloads.html">LoggerManager.ShutdownRepository Overload List</a></p><object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e" viewastext="true" style="display: none;"><param name="Keyword" value="ShutdownRepository method"></param><param name="Keyword" value="ShutdownRepository method, LoggerManager class"></param><param name="Keyword" value="LoggerManager.ShutdownRepository method"></param></object><hr /><div id="footer"><a href='http://logging.apache.org/log4net/'>Copyright 2004-2011 The Apache Software Foundation.</a><br></br>Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.</div></div>
  </body>
</html>
