<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>TextWriterAppender Constructor</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">TextWriterAppender�Constructor</h1>
      </div>
    </div>
    <div id="nstext">
      <p> Initializes a new instance of the <a href="log4net.Appender.TextWriterAppender.html">TextWriterAppender</a> class. </p>
      <h4 class="dtH4">Overload List</h4>
      <p> Initializes a new instance of the <a href="log4net.Appender.TextWriterAppender.html">TextWriterAppender</a> class. </p>
      <blockquote class="dtBlock">
        <a href="log4net.Appender.TextWriterAppenderConstructor1.html">public�TextWriterAppender();</a>
      </blockquote>
      <p>
        <FONT color="red">
          <B>Obsolete. </B>
        </FONT> Initializes a new instance of the <a href="log4net.Appender.TextWriterAppender.html">TextWriterAppender</a> class and sets the output destination to a new <a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemIOStreamWriterClassTopic.htm">StreamWriter</a> initialized with the specified <a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemIOStreamClassTopic.htm">Stream</a>. </p>
      <blockquote class="dtBlock">
        <a href="log4net.Appender.TextWriterAppenderConstructor2.html">public�TextWriterAppender(ILayout,Stream);</a>
      </blockquote>
      <p>
        <FONT color="red">
          <B>Obsolete. </B>
        </FONT> Initializes a new instance of the <a href="log4net.Appender.TextWriterAppender.html">TextWriterAppender</a> class and sets the output destination to the specified <a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemIOStreamWriterClassTopic.htm">StreamWriter</a>. </p>
      <blockquote class="dtBlock">
        <a href="log4net.Appender.TextWriterAppenderConstructor3.html">public�TextWriterAppender(ILayout,TextWriter);</a>
      </blockquote>
      <h4 class="dtH4">See Also</h4>
      <p>
        <a href="log4net.Appender.TextWriterAppender.html">TextWriterAppender Class</a> | <a href="log4net.Appender.html">log4net.Appender Namespace</a></p>
      <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e" viewastext="true" style="display: none;">
        <param name="Keyword" value="TextWriterAppender class, constructors">
        </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>
