﻿<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><style type="text/css">.OH_CodeSnippetContainerTabLeftActive, .OH_CodeSnippetContainerTabLeft,.OH_CodeSnippetContainerTabLeftDisabled { }.OH_CodeSnippetContainerTabRightActive, .OH_CodeSnippetContainerTabRight,.OH_CodeSnippetContainerTabRightDisabled { }.OH_footer { }</style><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ForwardingAppender Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ForwardingAppender class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:log4net.Appender.ForwardingAppender" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="log4net.Appender" /><meta name="file" content="Properties_T_log4net_Appender_ForwardingAppender" /><meta name="guid" content="Properties_T_log4net_Appender_ForwardingAppender" /></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="OH_outerDiv"><div class="OH_outerContent"><table class="TitleTable"><tr><td class="OH_tdTitleColumn">ForwardingAppender Properties</td><td class="OH_tdRunningTitleColumn">Apache log4net™ SDK Documentation</td></tr></table><div id="mainSection"><div id="mainBody"><span class="introStyle"></span><p>The <a href="T_log4net_Appender_ForwardingAppender.htm">ForwardingAppender</a> type exposes the following members.</p><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Properties</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="memberList" class="members"><tr><th class="ps_iconColumn">
								 
							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Appender_ForwardingAppender_Appenders.htm">Appenders</a></td><td><div class="summary">
            Gets the appenders contained in this appender as an 
            <a href="http://msdn2.microsoft.com/en-us/library/b1ht6113" target="_blank">ICollection</a>.
            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Appender_AppenderSkeleton_ErrorHandler.htm">ErrorHandler</a></td><td><div class="summary">
            Gets or sets the <a href="T_log4net_Core_IErrorHandler.htm">IErrorHandler</a> for this appender.
            </div> (Inherited from <a href="T_log4net_Appender_AppenderSkeleton.htm">AppenderSkeleton</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Appender_AppenderSkeleton_FilterHead.htm">FilterHead</a></td><td><div class="summary">
            The filter chain.
            </div> (Inherited from <a href="T_log4net_Appender_AppenderSkeleton.htm">AppenderSkeleton</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Appender_AppenderSkeleton_Layout.htm">Layout</a></td><td><div class="summary">
            Gets or sets the <a href="T_log4net_Layout_ILayout.htm">ILayout</a> for this appender.
            </div> (Inherited from <a href="T_log4net_Appender_AppenderSkeleton.htm">AppenderSkeleton</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Appender_AppenderSkeleton_Name.htm">Name</a></td><td><div class="summary">
            Gets or sets the name of this appender.
            </div> (Inherited from <a href="T_log4net_Appender_AppenderSkeleton.htm">AppenderSkeleton</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protproperty.gif" alt="Protected property" title="Protected property" /></td><td><a href="P_log4net_Appender_AppenderSkeleton_RequiresLayout.htm">RequiresLayout</a></td><td><div class="summary">
            Tests if this appender requires a <a href="P_log4net_Appender_AppenderSkeleton_Layout.htm">Layout</a> to be set.
            </div> (Inherited from <a href="T_log4net_Appender_AppenderSkeleton.htm">AppenderSkeleton</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_log4net_Appender_AppenderSkeleton_Threshold.htm">Threshold</a></td><td><div class="summary">
            Gets or sets the threshold <a href="T_log4net_Core_Level.htm">Level</a> of this appender.
            </div> (Inherited from <a href="T_log4net_Appender_AppenderSkeleton.htm">AppenderSkeleton</a>.)</td></tr></table><a href="#mainBody">Top</a><div class="OH_CollapsibleAreaRegion" id="seeAlsoSection"><div class="OH_regiontitle">See Also</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_log4net_Appender_ForwardingAppender.htm">ForwardingAppender Class</a></div><div class="seeAlsoStyle"><a href="N_log4net_Appender.htm">log4net.Appender Namespace</a></div></div></div></div></div><div id="OH_footer" class="OH_footer">Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.<p><a href="http://logging.apache.org/log4net/" target="_blank">Copyright 2004-2017 The Apache Software Foundation</a></p><div class="OH_feedbacklink">Send comments on this topic to
        <a id="HT_MailLink" href="mailto:http%3A%2F%2Flogging.apache.org%2Flog4net%2Fmail-lists.html?Subject=Apache log4net™ SDK Documentation">http://logging.apache.org/log4net/mail-lists.html</a></div><script type="text/javascript">
        var HT_mailLink = document.getElementById("HT_MailLink");
        var HT_mailLinkText = HT_mailLink.innerHTML;
        HT_mailLink.href += ": " + document.title + "\u0026body=" + encodeURIComponent("Your feedback is used to improve the documentation and the product. Your e-mail address will not be used for any other purpose and is disposed of after the issue you report is resolved. While working to resolve the issue that you report, you may be contacted via e-mail to get further details or clarification on the feedback you sent. After the issue you report has been addressed, you may receive an e-mail to let you know that your feedback has been addressed.");
        HT_mailLink.innerHTML = HT_mailLinkText;
        </script> </div></body></html>