<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.GetLogger Method (String, Type)</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.GetLogger�Method�(String, Type)</h1>
      </div>
    </div>
    <div id="nstext">
      <p> Shorthand for <b>GetLogger</b>. </p>
      <div class="syntax">
        <span class="lang">[Visual�Basic]</span>
        <br />Overloads�Public�Shared�Function�GetLogger( _<br />���ByVal <i>repository</i>�As�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemStringClassTopic.htm">String</a>,�_<br />���ByVal <i>type</i>�As�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemTypeClassTopic.htm">Type</a>�_<br />)�As�<a href="log4net.Core.ILogger.html">ILogger</a></div>
      <div class="syntax">
        <span class="lang">[C#]</span>
        <br />public�static�<a href="log4net.Core.ILogger.html">ILogger</a>�GetLogger(<br />���<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemStringClassTopic.htm">string</a>�<i>repository</i>,<br />���<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemTypeClassTopic.htm">Type</a>�<i>type</i><br />);</div>
      <h4 class="dtH4">Parameters</h4>
      <dl>
        <dt>
          <i>repository</i>
        </dt>
        <dd>The repository to lookup in.</dd>
        <dt>
          <i>type</i>
        </dt>
        <dd>The <i>type</i> of which the fullname will be used as the name of the logger to retrieve.</dd>
      </dl>
      <h4 class="dtH4">Return Value</h4>
      <p>The logger with the name specified.</p>
      <h4 class="dtH4">Remarks</h4>
            <p> Gets the logger for the fully qualified name of the type specified. </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.GetLogger_overloads.html">LoggerManager.GetLogger 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="GetLogger method"></param><param name="Keyword" value="GetLogger method, LoggerManager class"></param><param name="Keyword" value="LoggerManager.GetLogger 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>
