﻿<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>RollingFileAppender.MaxSizeRollBackups Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="MaxSizeRollBackups property" /><meta name="System.Keywords" content="RollingFileAppender.MaxSizeRollBackups property" /><meta name="Microsoft.Help.F1" content="log4net.Appender.RollingFileAppender.MaxSizeRollBackups" /><meta name="Microsoft.Help.F1" content="log4net.Appender.RollingFileAppender.get_MaxSizeRollBackups" /><meta name="Microsoft.Help.F1" content="log4net.Appender.RollingFileAppender.set_MaxSizeRollBackups" /><meta name="Microsoft.Help.Id" content="P:log4net.Appender.RollingFileAppender.MaxSizeRollBackups" /><meta name="Description" content="Gets or sets the maximum number of backup files that are kept before the oldest is erased." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="'true'" /><meta name="container" content="log4net.Appender" /><meta name="file" content="P_log4net_Appender_RollingFileAppender_MaxSizeRollBackups" /><meta name="guid" content="P_log4net_Appender_RollingFileAppender_MaxSizeRollBackups" /><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">RollingFileAppender<span id="ID0EBBABAAA"> </span><script type="text/javascript">
					addToLanSpecTextIdSet("ID0EBBABAAA?vb=.|cpp=::|cs=.|fs=.|nu=.");
				</script>MaxSizeRollBackups Property </td><td class="OH_tdRunningTitleColumn">Apache log4net™ SDK Documentation</td></tr></table><div id="mainSection"><div id="mainBody"><span class="introStyle"></span><div class="summary">
            Gets or sets the maximum number of backup files that are kept before
            the oldest is erased.
            </div><p></p><b>Namespace:</b> <a href="N_log4net_Appender.htm" target="">log4net.Appender</a><br /><b>Assembly:</b> <span sdata="assembly">log4net</span> (in log4net.dll) Version: 1.2.14.0 (1.2.14.0)<div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Syntax</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div><div id="snippetGroup_Syntax" class="code"><div id="ID0ECFDAAAAA" class="OH_CodeSnippetContainer"><div class="OH_CodeSnippetContainerTabs" id="ID0ECFDAAAAA_tabs"><div class="OH_CodeSnippetContainerTabLeftActive" id="ID0ECFDAAAAA_tabimgleft"></div><div id="ID0ECFDAAAAA_tab1" class="OH_CodeSnippetContainerTabActive" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0ECFDAAAAA','C#','1','4');return false;">C#</a></div><div id="ID0ECFDAAAAA_tab2" class="OH_CodeSnippetContainerTab" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0ECFDAAAAA','Visual Basic','2','4');return false;">VB</a></div><div id="ID0ECFDAAAAA_tab3" class="OH_CodeSnippetContainerTab" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0ECFDAAAAA','Visual C++','3','4');return false;">C++</a></div><div id="ID0ECFDAAAAA_tab4" class="OH_CodeSnippetContainerTabDisabledNotFirst" EnableCopyCode="true" disabled="true"><a>F#</a></div><div class="OH_CodeSnippetContainerTabRight" id="ID0ECFDAAAAA_tabimgright"></div></div><div id="ID0ECFDAAAAA_codecollection" class="OH_CodeSnippetContainerCodeCollection"><div class="OH_CodeSnippetToolBar"><div class="OH_CodeSnippetToolBarText"><a id="ID0ECFDAAAAA_ViewColorized" href="#" onclick="javascript:ExchangeTitleContent('ID0ECFDAAAAA','4')" title="View Colorized" style="display: none">View Colorized</a><a id="ID0ECFDAAAAA_copycode" href="#" onclick="javascript:CopyToClipboard('ID0ECFDAAAAA','4')" title="Copy to Clipboard">Copy to Clipboard</a><a id="ID0ECFDAAAAA_PrintText" class="OH_PrintText" href="#" onclick="javascript:Print('ID0ECFDAAAAA','4')" title="Print">Print</a></div></div><div id="ID0ECFDAAAAA_code_Div1" class="OH_CodeSnippetContainerCode" style="display: block"><pre><span class="keyword">public</span> <span class="identifier">int</span> <span class="identifier">MaxSizeRollBackups</span> { <span class="keyword">get</span>; <span class="keyword">set</span>; }</pre></div><div id="ID0ECFDAAAAA_code_Plain_Div1" class="OH_CodeSnippetContainerCode" style="display: none"><pre>public int MaxSizeRollBackups { get; set; }</pre></div><div id="ID0ECFDAAAAA_code_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre><span class="keyword">Public</span> <span class="keyword">Property</span> <span class="identifier">MaxSizeRollBackups</span> <span class="keyword">As</span> <span class="identifier">Integer</span> 
	<span class="keyword">Get</span> 
	<span class="keyword">Set</span></pre></div><div id="ID0ECFDAAAAA_code_Plain_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre>Public Property MaxSizeRollBackups As Integer 
	Get 
	Set</pre></div><div id="ID0ECFDAAAAA_code_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre><span class="keyword">public</span>:
<span class="keyword">property</span> <span class="identifier">int</span> <span class="identifier">MaxSizeRollBackups</span> {
	<span class="identifier">int</span> <span class="keyword">get</span> ();
	<span class="keyword">void</span> <span class="keyword">set</span> (<span class="identifier">int</span> <span class="parameter">value</span>);
}</pre></div><div id="ID0ECFDAAAAA_code_Plain_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre>public:
property int MaxSizeRollBackups {
	int get ();
	void set (int value);
}</pre></div><div id="ID0ECFDAAAAA_code_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0ECFDAAAAA_code_Plain_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div></div></div><script>addSpecificTextLanguageTagSet('ID0ECFDAAAAA');</script></div><h4 class="subHeading">Property Value</h4>Type: <img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a><br />
            The maximum number of backup files that are kept before the oldest is
            erased.
            <div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Remarks</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div><p>
            If set to zero, then there will be no backup files and the log file 
            will be truncated when it reaches <a href="P_log4net_Appender_RollingFileAppender_MaxFileSize.htm" target="">MaxFileSize</a>.  
            </p><p>
            If a negative number is supplied then no deletions will be made.  Note 
            that this could result in very slow performance as a large number of 
            files are rolled over unless <a href="P_log4net_Appender_RollingFileAppender_CountDirection.htm" target="">CountDirection</a> is used.
            </p><p>
            The maximum applies to <b>each</b> time based group of files and 
            <b>not</b> the total.
            </p><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_RollingFileAppender.htm" target="">RollingFileAppender Class</a></div><div class="seeAlsoStyle"><a href="AllMembers_T_log4net_Appender_RollingFileAppender.htm" target="">RollingFileAppender Members</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+RollingFileAppender.MaxSizeRollBackups+Property++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>