<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>GetRepository Method</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.GetRepository�Method</h1>
      </div>
    </div>
    <div id="nstext">
      <p> Returns the default <a href="log4net.Repository.ILoggerRepository.html">ILoggerRepository</a> instance. </p>
      <h4 class="dtH4">Overload List</h4>
      <p> Returns the default <a href="log4net.Repository.ILoggerRepository.html">ILoggerRepository</a> instance. </p>
      <blockquote class="dtBlock">
        <a href="log4net.Core.LoggerManager.GetRepository_overload_2.html">public�static�ILoggerRepository�GetRepository(Assembly);</a>
      </blockquote>
      <p> Return the default <a href="log4net.Repository.ILoggerRepository.html">ILoggerRepository</a> instance. </p>
      <blockquote class="dtBlock">
        <a href="log4net.Core.LoggerManager.GetRepository_overload_1.html">public�static�ILoggerRepository�GetRepository(string);</a>
      </blockquote>
      <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></p>
      <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>
