<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>AppenderAttachedImpl.GetAppender 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">AppenderAttachedImpl.GetAppender�Method�</h1>
      </div>
    </div>
    <div id="nstext">
      <p> Gets an attached appender with the specified name. </p>
      <div class="syntax">
        <span class="lang">[Visual�Basic]</span>
        <br />NotOverridable�Public�Function�GetAppender( _<br />���ByVal <i>name</i>�As�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemStringClassTopic.htm">String</a>�_<br />)�As�<a href="log4net.Appender.IAppender.html">IAppender</a>�_<div>����Implements�<a href="log4net.Core.IAppenderAttachable.GetAppender.html">IAppenderAttachable.GetAppender</a></div></div>
      <div class="syntax">
        <span class="lang">[C#]</span>
        <br />public�<a href="log4net.Appender.IAppender.html">IAppender</a>�GetAppender(<br />���<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemStringClassTopic.htm">string</a>�<i>name</i><br />);</div>
      <h4 class="dtH4">Parameters</h4>
      <dl>
        <dt>
          <i>name</i>
        </dt>
        <dd>The name of the appender to get.</dd>
      </dl>
      <h4 class="dtH4">Return Value</h4>
      <p> The appender with the name specified, or <code>null</code> if no appender with the specified name is found. </p>
      <h4 class="dtH4">Implements</h4>
      <p>
        <a href="log4net.Core.IAppenderAttachable.GetAppender.html">IAppenderAttachable.GetAppender</a>
      </p>
      <h4 class="dtH4">Remarks</h4>
            <p> Lookup an attached appender by name. </p>
            <h4 class="dtH4">See Also</h4><p><a href="log4net.Util.AppenderAttachedImpl.html">AppenderAttachedImpl Class</a> | <a href="log4net.Util.html">log4net.Util Namespace</a></p><object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e" viewastext="true" style="display: none;"><param name="Keyword" value="GetAppender method"></param><param name="Keyword" value="GetAppender method, AppenderAttachedImpl class"></param><param name="Keyword" value="AppenderAttachedImpl.GetAppender 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>
