<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>LogManager.GetCurrentLoggers Method (Assembly)</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.GetCurrentLoggers�Method�(Assembly)</h1>
      </div>
    </div>
    <div id="nstext">
      <p> Returns all the currently defined loggers in the specified assembly's repository. </p>
      <div class="syntax">
        <span class="lang">[Visual�Basic]</span>
        <br />Overloads�Public�Shared�Function�GetCurrentLoggers( _<br />���ByVal <i>repositoryAssembly</i>�As�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemReflectionAssemblyClassTopic.htm">Assembly</a>�_<br />)�As�<a href="log4net.ILog.html">ILog()</a></div>
      <div class="syntax">
        <span class="lang">[C#]</span>
        <br />public�static�<a href="log4net.ILog.html">ILog[]</a>�GetCurrentLoggers(<br />���<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemReflectionAssemblyClassTopic.htm">Assembly</a>�<i>repositoryAssembly</i><br />);</div>
      <h4 class="dtH4">Parameters</h4>
      <dl>
        <dt>
          <i>repositoryAssembly</i>
        </dt>
        <dd>The assembly to use to lookup the repository.</dd>
      </dl>
      <h4 class="dtH4">Return Value</h4>
      <p>All the defined loggers.</p>
      <h4 class="dtH4">Remarks</h4>
      <p> The root logger is <b>not</b> included in the returned array. </p>
      <h4 class="dtH4">See Also</h4>
      <p>
        <a href="log4net.LogManager.html">LogManager Class</a> | <a href="log4net.html">log4net Namespace</a> | <a href="log4net.LogManager.GetCurrentLoggers_overloads.html">LogManager.GetCurrentLoggers 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="GetCurrentLoggers method">
        </param>
        <param name="Keyword" value="GetCurrentLoggers method, LogManager class">
        </param>
        <param name="Keyword" value="LogManager.GetCurrentLoggers method">
        </param>
      </object>
      <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>
