<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>NamedPatternConverter.GetFullyQualifiedName 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">NamedPatternConverter.GetFullyQualifiedName�Method�</h1>
      </div>
    </div>
    <div id="nstext">
      <p> Get the fully qualified string data </p>
      <div class="syntax">
        <span class="lang">[Visual�Basic]</span>
        <br />MustOverride�Protected�Function�GetFullyQualifiedName( _<br />���ByVal <i>loggingEvent</i>�As�<a href="log4net.Core.LoggingEvent.html">LoggingEvent</a>�_<br />)�As�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemStringClassTopic.htm">String</a></div>
      <div class="syntax">
        <span class="lang">[C#]</span>
        <br />protected�abstract�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemStringClassTopic.htm">string</a>�GetFullyQualifiedName(<br />���<a href="log4net.Core.LoggingEvent.html">LoggingEvent</a>�<i>loggingEvent</i><br />);</div>
      <h4 class="dtH4">Parameters</h4>
      <dl>
        <dt>
          <i>loggingEvent</i>
        </dt>
        <dd>the event being logged</dd>
      </dl>
      <h4 class="dtH4">Return Value</h4>
      <p>the fully qualified name</p>
      <h4 class="dtH4">Remarks</h4>
            <p> Overridden by subclasses to get the fully qualified name before the precision is applied to it. </p>
            <p> Return the fully qualified <code>'.'</code> (dot/period) separated string. </p>
            <h4 class="dtH4">See Also</h4><p><a href="log4net.Layout.Pattern.NamedPatternConverter.html">NamedPatternConverter Class</a> | <a href="log4net.Layout.Pattern.html">log4net.Layout.Pattern Namespace</a></p><object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e" viewastext="true" style="display: none;"><param name="Keyword" value="GetFullyQualifiedName method"></param><param name="Keyword" value="GetFullyQualifiedName method, NamedPatternConverter class"></param><param name="Keyword" value="NamedPatternConverter.GetFullyQualifiedName 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>
