<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 Class</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 Class</h1>
      </div>
    </div>
    <div id="nstext">
      <p> Converter to output and truncate <code>'.'</code> separated strings </p>
      <p>For a list of all members of this type, see <a href="log4net.Layout.Pattern.NamedPatternConverterMembers.html">NamedPatternConverter Members</a>.</p>
      <p>
        <a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemObjectClassTopic.htm">System.Object</a>
        <br />���<a href="log4net.Util.PatternConverter.html">log4net.Util.PatternConverter</a><br />������<a href="log4net.Layout.Pattern.PatternLayoutConverter.html">log4net.Layout.Pattern.PatternLayoutConverter</a><br />���������<b>log4net.Layout.Pattern.NamedPatternConverter</b></p>
      <div class="syntax">
        <span class="lang">[Visual�Basic]</span>
        <br />MustInherit�Public�Class�NamedPatternConverter<div>����Inherits�<a href="log4net.Layout.Pattern.PatternLayoutConverter.html">PatternLayoutConverter</a></div><div>����Implements�<a href="log4net.Core.IOptionHandler.html">IOptionHandler</a></div></div>
      <div class="syntax">
        <span class="lang">[C#]</span>
        <div>public�abstract�class�NamedPatternConverter<b> : <a href="log4net.Layout.Pattern.PatternLayoutConverter.html">PatternLayoutConverter</a>, <a href="log4net.Core.IOptionHandler.html">IOptionHandler</a></b></div>
      </div>
      <H4 class="dtH4">Thread Safety</H4>
      <P>Public static (<b>Shared</b> in Visual Basic) members of this type are 
				safe for multithreaded operations. Instance members are <b>not</b> guaranteed to be 
				thread-safe.</P>
      <h4 class="dtH4">Remarks</h4>
            <p> This abstract class supports truncating a <code>'.'</code> separated string to show a specified number of elements from the right hand side. This is used to truncate class names that are fully qualified. </p>
            <p> Subclasses should override the <a href="log4net.Layout.Pattern.NamedPatternConverter.GetFullyQualifiedName.html">GetFullyQualifiedName</a> method to return the fully qualified string. </p>
            <h4 class="dtH4">Requirements</h4><p><b>Namespace: </b><a href="log4net.Layout.Pattern.html">log4net.Layout.Pattern</a></p><p><b>Assembly: </b>log4net (in log4net.dll)
					</p><h4 class="dtH4">See Also</h4><p><a href="log4net.Layout.Pattern.NamedPatternConverterMembers.html">NamedPatternConverter Members</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="NamedPatternConverter class, about NamedPatternConverter class"></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>
