﻿<html xmlns:MSHelp="http://msdn.microsoft.com/mshelp" xmlns:mshelp="http://msdn.microsoft.com/mshelp"><head><link rel="SHORTCUT ICON" href="./../icons/favicon.ico" /><style type="text/css">.OH_CodeSnippetContainerTabLeftActive, .OH_CodeSnippetContainerTabLeft,.OH_CodeSnippetContainerTabLeftDisabled { backgroundImageName: tabLeftBG.gif; }.OH_CodeSnippetContainerTabRightActive, .OH_CodeSnippetContainerTabRight,.OH_CodeSnippetContainerTabRightDisabled { backgroundImageName: tabRightBG.gif; }.OH_footer { backgroundImageName: footer_slice.gif; background-position: top; background-repeat: repeat-x; }</style><link rel="stylesheet" type="text/css" href="./../styles/branding.css" /><link rel="stylesheet" type="text/css" href="./../styles/branding-en-US.css" /><style type="text/css">
			body
			{
			border-left:5px solid #e6e6e6;
			overflow-x:scroll;
			overflow-y:scroll;
			}
		</style><script src="./../scripts/branding.js" type="text/javascript"><!----></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>DebugAppender Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="DebugAppender class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:log4net.Appender.DebugAppender" /><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_DebugAppender" /><meta name="guid" content="Properties_T_log4net_Appender_DebugAppender" /><link type="text/css" rel="stylesheet" href="ms-help://Hx/HxRuntime/HxLink.css" /><meta name="SelfBranded" content="true" /></head><body onload="onLoad()" class="primary-mtps-offline-document"><div class="OH_outerDiv"><div class="OH_outerContent"><table class="TitleTable"><tr><td class="OH_tdTitleColumn">DebugAppender Properties</td><td class="OH_tdRunningTitleColumn">Apache log4net™ SDK Documentation</td></tr></table><div id="mainSection"><div id="mainBody"><span class="introStyle"></span>The <a href="T_log4net_Appender_DebugAppender.htm" target="">DebugAppender</a> type exposes the following members.<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 class="ps_nameColumn">Name</th><th class="ps_descriptionColumn">Description</th></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" target="">ErrorHandler</a></td><td><div class="summary">
            Gets or sets the <a href="T_log4net_Core_IErrorHandler.htm" target="">IErrorHandler</a> for this appender.
            </div> (Inherited from <a href="T_log4net_Appender_AppenderSkeleton.htm" target="">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" target="">FilterHead</a></td><td><div class="summary">
            The filter chain.
            </div> (Inherited from <a href="T_log4net_Appender_AppenderSkeleton.htm" target="">AppenderSkeleton</a>.)</td></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_DebugAppender_ImmediateFlush.htm" target="">ImmediateFlush</a></td><td><div class="summary">
            Gets or sets a value that indicates whether the appender will 
            flush at the end of each write.
            </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_Layout.htm" target="">Layout</a></td><td><div class="summary">
            Gets or sets the <a href="T_log4net_Layout_ILayout.htm" target="">ILayout</a> for this appender.
            </div> (Inherited from <a href="T_log4net_Appender_AppenderSkeleton.htm" target="">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" target="">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" target="">AppenderSkeleton</a>.)</td></tr><tr data="protected;declared;notNetfw;"><td><img src="./../icons/protproperty.gif" alt="Protected property" title="Protected property" /></td><td><a href="P_log4net_Appender_DebugAppender_RequiresLayout.htm" target="">RequiresLayout</a></td><td><div class="summary">
            This appender requires a <a href="N_log4net_Layout.htm" target="">log4net.Layout</a> to be set.
            </div> (Overrides <a href="P_log4net_Appender_AppenderSkeleton_RequiresLayout.htm" target="">AppenderSkeleton<span id="ID0EBBABBCAAAAA"> </span><script type="text/javascript">
					addToLanSpecTextIdSet("ID0EBBABBCAAAAA?vb=.|cpp=::|cs=.|fs=.|nu=.");
				</script>RequiresLayout</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" target="">Threshold</a></td><td><div class="summary">
            Gets or sets the threshold <a href="T_log4net_Core_Level.htm" target="">Level</a> of this appender.
            </div> (Inherited from <a href="T_log4net_Appender_AppenderSkeleton.htm" target="">AppenderSkeleton</a>.)</td></tr></table><a href="#mainBody" target="">Back to Top</a><a name="seeAlsoSection"><!----></a><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">See Also</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div><div class="seeAlsoStyle"><a href="T_log4net_Appender_DebugAppender.htm" target="">DebugAppender Class</a></div><div class="seeAlsoStyle"><a href="N_log4net_Appender.htm" target="">log4net.Appender Namespace</a></div></div></div></div></div><div id="OH_footer" class="OH_footer"><p>Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.</p><p><a href="http://logging.apache.org/log4net/" target="_blank"><img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /> 
						Copyright 2004-2015 The Apache Software Foundation (http://logging.apache.org/log4net/)</a></p><div class="OH_feedbacklink"><a href="mailto:http://logging.apache.org/log4net/mail-lists.html?subject=Apache+log4net%e2%84%a2+SDK+Documentation+DebugAppender+Properties+100+EN-US&amp;body=Your%20feedback%20is%20used%20to%20improve%20the%20documentation%20and%20the%20product.%20Your%20e-mail%20address%20will%20not%20be%20used%20for%20any%20other%20purpose%20and%20is%20disposed%20of%20after%20the%20issue%20you%20report%20is%20resolved.%20While%20working%20to%20resolve%20the%20issue%20that%20you%20report%2c%20you%20may%20be%20contacted%20via%20e-mail%20to%20get%20further%20details%20or%20clarification%20on%20the%20feedback%20you%20sent.%20After%20the%20issue%20you%20report%20has%20been%20addressed%2c%20you%20may%20receive%20an%20e-mail%20to%20let%20you%20know%20that%20your%20feedback%20has%20been%20addressed.">Send Feedback</a> on this topic to http://logging.apache.org/log4net/mail-lists.html.</div></div></body></html>