<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>GetLogger 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">LogManager.GetLogger�Method</h1>
      </div>
    </div>
    <div id="nstext">
      <p>Get or create a logger.</p>
      <h4 class="dtH4">Overload List</h4>
      <p> Retrieves or creates a named logger. </p>
      <blockquote class="dtBlock">
        <a href="log4net.LogManager.GetLogger_overload_3.html">public�static�ILog�GetLogger(Assembly,string);</a>
      </blockquote>
      <p> Shorthand for <b>GetLogger</b>. </p>
      <blockquote class="dtBlock">
        <a href="log4net.LogManager.GetLogger_overload_6.html">public�static�ILog�GetLogger(Assembly,Type);</a>
      </blockquote>
      <p> Retrieves or creates a named logger. </p>
      <blockquote class="dtBlock">
        <a href="log4net.LogManager.GetLogger_overload_1.html">public�static�ILog�GetLogger(string);</a>
      </blockquote>
      <p> Retrieves or creates a named logger. </p>
      <blockquote class="dtBlock">
        <a href="log4net.LogManager.GetLogger_overload_2.html">public�static�ILog�GetLogger(string,string);</a>
      </blockquote>
      <p> Shorthand for <b>GetLogger</b>. </p>
      <blockquote class="dtBlock">
        <a href="log4net.LogManager.GetLogger_overload_5.html">public�static�ILog�GetLogger(string,Type);</a>
      </blockquote>
      <p> Shorthand for <b>GetLogger</b>. </p>
      <blockquote class="dtBlock">
        <a href="log4net.LogManager.GetLogger_overload_4.html">public�static�ILog�GetLogger(Type);</a>
      </blockquote>
      <h4 class="dtH4">See Also</h4>
      <p>
        <a href="log4net.LogManager.html">LogManager Class</a> | <a href="log4net.html">log4net Namespace</a></p>
      <hr />
      <div id="footer"><a href='http://logging.apache.org/log4net/'>Copyright 2004-2013 The Apache Software Foundation.</a><br></br>Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.</div>
    </div>
  </body>
</html>
