<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="de">
<head>
<!-- Generated by javadoc (version 1.7.0_25) on Mon Oct 14 12:35:25 CEST 2013 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>TimeBasedRollingPolicy (Apache Extras™ for Apache log4j™. 1.2.17 API)</title>
<meta name="date" content="2013-10-14">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="TimeBasedRollingPolicy (Apache Extras™ for Apache log4j™. 1.2.17 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TimeBasedRollingPolicy.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/log4j/rolling/SizeBasedTriggeringPolicy.html" title="class in org.apache.log4j.rolling"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/log4j/rolling/TriggeringPolicy.html" title="interface in org.apache.log4j.rolling"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/log4j/rolling/TimeBasedRollingPolicy.html" target="_top">Frames</a></li>
<li><a href="TimeBasedRollingPolicy.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.apache.log4j.rolling.RollingPolicyBase">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.log4j.rolling</div>
<h2 title="Class TimeBasedRollingPolicy" class="title">Class TimeBasedRollingPolicy</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html" title="class in org.apache.log4j.rolling">org.apache.log4j.rolling.RollingPolicyBase</a></li>
<li>
<ul class="inheritance">
<li>org.apache.log4j.rolling.TimeBasedRollingPolicy</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../org/apache/log4j/rolling/RollingPolicy.html" title="interface in org.apache.log4j.rolling">RollingPolicy</a>, <a href="../../../../org/apache/log4j/rolling/TriggeringPolicy.html" title="interface in org.apache.log4j.rolling">TriggeringPolicy</a>, org.apache.log4j.spi.OptionHandler</dd>
</dl>
<hr>
<br>
<pre>public final class <span class="strong">TimeBasedRollingPolicy</span>
extends <a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html" title="class in org.apache.log4j.rolling">RollingPolicyBase</a>
implements <a href="../../../../org/apache/log4j/rolling/TriggeringPolicy.html" title="interface in org.apache.log4j.rolling">TriggeringPolicy</a></pre>
<div class="block"><code>TimeBasedRollingPolicy</code> is both easy to configure and quite
 powerful.

 <p>In order to use  <code>TimeBasedRollingPolicy</code>, the
 <b>FileNamePattern</b> option must be set. It basically specifies the name of the
 rolled log files. The value <code>FileNamePattern</code> should consist of
 the name of the file, plus a suitably placed <code>%d</code> conversion
 specifier. The <code>%d</code> conversion specifier may contain a date and
 time pattern as specified by the <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html?is-external=true" title="class or interface in java.text"><code>SimpleDateFormat</code></a> class. If
 the date and time pattern is ommitted, then the default pattern of
 "yyyy-MM-dd" is assumed. The following examples should clarify the point.

 <p>
 <table cellspacing="5px" border="1">
   <tr>
     <th><code>FileNamePattern</code> value</th>
     <th>Rollover schedule</th>
     <th>Example</th>
   </tr>
   <tr>
     <td nowrap="true"><code>/wombat/folder/foo.%d</code></td>
     <td>Daily rollover (at midnight).  Due to the omission of the optional
         time and date pattern for the %d token specifier, the default pattern
         of "yyyy-MM-dd" is assumed, which corresponds to daily rollover.
     </td>
     <td>During November 23rd, 2004, logging output will go to
       the file <code>/wombat/foo.2004-11-23</code>. At midnight and for
       the rest of the 24th, logging output will be directed to
       <code>/wombat/foo.2004-11-24</code>.
     </td>
   </tr>
   <tr>
     <td nowrap="true"><code>/wombat/foo.%d{yyyy-MM}.log</code></td>
     <td>Rollover at the beginning of each month.</td>
     <td>During the month of October 2004, logging output will go to
     <code>/wombat/foo.2004-10.log</code>. After midnight of October 31st
     and for the rest of November, logging output will be directed to
       <code>/wombat/foo.2004-11.log</code>.
     </td>
   </tr>
 </table>
 <h2>Automatic file compression</h2>
 <code>TimeBasedRollingPolicy</code> supports automatic file compression.
 This feature is enabled if the value of the <b>FileNamePattern</b> option
 ends with <code>.gz</code> or <code>.zip</code>.
 <p>
 <table cellspacing="5px" border="1">
   <tr>
     <th><code>FileNamePattern</code> value</th>
     <th>Rollover schedule</th>
     <th>Example</th>
   </tr>
   <tr>
     <td nowrap="true"><code>/wombat/foo.%d.gz</code></td>
     <td>Daily rollover (at midnight) with automatic GZIP compression of the
      archived files.</td>
     <td>During November 23rd, 2004, logging output will go to
       the file <code>/wombat/foo.2004-11-23</code>. However, at midnight that
       file will be compressed to become <code>/wombat/foo.2004-11-23.gz</code>.
       For the 24th of November, logging output will be directed to
       <code>/wombat/folder/foo.2004-11-24</code> until its rolled over at the
       beginning of the next day.
     </td>
   </tr>
 </table>

 <h2>Decoupling the location of the active log file and the archived log files</h2>
 <p>The <em>active file</em> is defined as the log file for the current period
 whereas <em>archived files</em> are those files which have been rolled over
 in previous periods.

 <p>By setting the <b>ActiveFileName</b> option you can decouple the location
 of the active log file and the location of the archived log files.
 <p>
  <table cellspacing="5px" border="1">
   <tr>
     <th><code>FileNamePattern</code> value</th>
     <th>ActiveFileName</th>
     <th>Rollover schedule</th>
     <th>Example</th>
   </tr>
   <tr>
     <td nowrap="true"><code>/wombat/foo.log.%d</code></td>
     <td nowrap="true"><code>/wombat/foo.log</code></td>
     <td>Daily rollover.</td>

     <td>During November 23rd, 2004, logging output will go to
       the file <code>/wombat/foo.log</code>. However, at midnight that file
       will archived as <code>/wombat/foo.log.2004-11-23</code>. For the 24th
       of November, logging output will be directed to
       <code>/wombat/folder/foo.log</code> until its archived as
       <code>/wombat/foo.log.2004-11-24</code> at the beginning of the next
       day.
     </td>
   </tr>
 </table>
 <p>
 If configuring programatically, do not forget to call <a href="../../../../org/apache/log4j/rolling/TimeBasedRollingPolicy.html#activateOptions()"><code>activateOptions()</code></a>
 method before using this policy. Moreover, <a href="../../../../org/apache/log4j/rolling/TimeBasedRollingPolicy.html#activateOptions()"><code>activateOptions()</code></a> of
 <code> TimeBasedRollingPolicy</code> must be called <em>before</em> calling
 the <a href="../../../../org/apache/log4j/rolling/TimeBasedRollingPolicy.html#activateOptions()"><code>activateOptions()</code></a> method of the owning
 <code>RollingFileAppender</code>.</div>
<dl><dt><span class="strong">Author:</span></dt>
  <dd>Ceki G&uuml;lc&uuml;, Curt Arnold</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.apache.log4j.rolling.RollingPolicyBase">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.log4j.rolling.<a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html" title="class in org.apache.log4j.rolling">RollingPolicyBase</a></h3>
<code><a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html#activeFileName">activeFileName</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../org/apache/log4j/rolling/TimeBasedRollingPolicy.html#TimeBasedRollingPolicy()">TimeBasedRollingPolicy</a></strong>()</code>
<div class="block">Constructs a new instance.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/log4j/rolling/TimeBasedRollingPolicy.html#activateOptions()">activateOptions</a></strong>()</code>
<div class="block">Prepares instance of use.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/log4j/rolling/RolloverDescription.html" title="interface in org.apache.log4j.rolling">RolloverDescription</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/log4j/rolling/TimeBasedRollingPolicy.html#initialize(java.lang.String, boolean)">initialize</a></strong>(<a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;currentActiveFile,
          boolean&nbsp;append)</code>
<div class="block">Initialize the policy and return any initial actions for rolling file appender..</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/log4j/rolling/TimeBasedRollingPolicy.html#isTriggeringEvent(org.apache.log4j.Appender, org.apache.log4j.spi.LoggingEvent, java.lang.String, long)">isTriggeringEvent</a></strong>(org.apache.log4j.Appender&nbsp;appender,
                 org.apache.log4j.spi.LoggingEvent&nbsp;event,
                 <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
                 long&nbsp;fileLength)</code>
<div class="block">Determines if a rollover may be appropriate at this time.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/log4j/rolling/RolloverDescription.html" title="interface in org.apache.log4j.rolling">RolloverDescription</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/log4j/rolling/TimeBasedRollingPolicy.html#rollover(java.lang.String)">rollover</a></strong>(<a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;currentActiveFile)</code>
<div class="block">Prepare for a rollover.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.log4j.rolling.RollingPolicyBase">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.log4j.rolling.<a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html" title="class in org.apache.log4j.rolling">RollingPolicyBase</a></h3>
<code><a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html#formatFileName(java.lang.Object, java.lang.StringBuffer)">formatFileName</a>, <a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html#getActiveFileName()">getActiveFileName</a>, <a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html#getDatePatternConverter()">getDatePatternConverter</a>, <a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html#getFileNamePattern()">getFileNamePattern</a>, <a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html#getIntegerPatternConverter()">getIntegerPatternConverter</a>, <a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html#parseFileNamePattern()">parseFileNamePattern</a>, <a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html#setActiveFileName(java.lang.String)">setActiveFileName</a>, <a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html#setFileNamePattern(java.lang.String)">setFileNamePattern</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="TimeBasedRollingPolicy()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TimeBasedRollingPolicy</h4>
<pre>public&nbsp;TimeBasedRollingPolicy()</pre>
<div class="block">Constructs a new instance.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="activateOptions()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>activateOptions</h4>
<pre>public&nbsp;void&nbsp;activateOptions()</pre>
<div class="block">Prepares instance of use.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code>activateOptions</code>&nbsp;in interface&nbsp;<code>org.apache.log4j.spi.OptionHandler</code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html#activateOptions()">activateOptions</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/log4j/rolling/RollingPolicyBase.html" title="class in org.apache.log4j.rolling">RollingPolicyBase</a></code></dd>
</dl>
</li>
</ul>
<a name="initialize(java.lang.String, boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre>public&nbsp;<a href="../../../../org/apache/log4j/rolling/RolloverDescription.html" title="interface in org.apache.log4j.rolling">RolloverDescription</a>&nbsp;initialize(<a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;currentActiveFile,
                             boolean&nbsp;append)</pre>
<div class="block">Initialize the policy and return any initial actions for rolling file appender..</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/log4j/rolling/RollingPolicy.html#initialize(java.lang.String, boolean)">initialize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/log4j/rolling/RollingPolicy.html" title="interface in org.apache.log4j.rolling">RollingPolicy</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>currentActiveFile</code> - current value of RollingFileAppender.getFile().</dd><dd><code>append</code> - current value of RollingFileAppender.getAppend().</dd>
<dt><span class="strong">Returns:</span></dt><dd>Description of the initialization, may be null to indicate
 no initialization needed.</dd></dl>
</li>
</ul>
<a name="rollover(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rollover</h4>
<pre>public&nbsp;<a href="../../../../org/apache/log4j/rolling/RolloverDescription.html" title="interface in org.apache.log4j.rolling">RolloverDescription</a>&nbsp;rollover(<a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;currentActiveFile)</pre>
<div class="block">Prepare for a rollover.  This method is called prior to
 closing the active log file, performs any necessary
 preliminary actions and describes actions needed
 after close of current log file.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/log4j/rolling/RollingPolicy.html#rollover(java.lang.String)">rollover</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/log4j/rolling/RollingPolicy.html" title="interface in org.apache.log4j.rolling">RollingPolicy</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>currentActiveFile</code> - file name for current active log file.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Description of pending rollover, may be null to indicate no rollover
 at this time.</dd></dl>
</li>
</ul>
<a name="isTriggeringEvent(org.apache.log4j.Appender, org.apache.log4j.spi.LoggingEvent, java.lang.String, long)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isTriggeringEvent</h4>
<pre>public&nbsp;boolean&nbsp;isTriggeringEvent(org.apache.log4j.Appender&nbsp;appender,
                        org.apache.log4j.spi.LoggingEvent&nbsp;event,
                        <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
                        long&nbsp;fileLength)</pre>
<div class="block">Determines if a rollover may be appropriate at this time.  If
 true is returned, RolloverPolicy.rollover will be called but it
 can determine that a rollover is not warranted.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/log4j/rolling/TriggeringPolicy.html#isTriggeringEvent(org.apache.log4j.Appender, org.apache.log4j.spi.LoggingEvent, java.lang.String, long)">isTriggeringEvent</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/log4j/rolling/TriggeringPolicy.html" title="interface in org.apache.log4j.rolling">TriggeringPolicy</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>appender</code> - A reference to the appender.</dd><dd><code>event</code> - A reference to the currently event.</dd><dd><code>filename</code> - The filename for the currently active log file.</dd><dd><code>fileLength</code> - Length of the file in bytes.</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if a rollover should occur.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TimeBasedRollingPolicy.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/log4j/rolling/SizeBasedTriggeringPolicy.html" title="class in org.apache.log4j.rolling"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/log4j/rolling/TriggeringPolicy.html" title="interface in org.apache.log4j.rolling"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/log4j/rolling/TimeBasedRollingPolicy.html" target="_top">Frames</a></li>
<li><a href="TimeBasedRollingPolicy.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.apache.log4j.rolling.RollingPolicyBase">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><p>Copyright © 2013 The Apache Software Foundation. Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p> <p>Apache Extras for Apache log4j, Apache log4j and Apache are trademarks of the Apache Software Foundation.</p></small></p>
</body>
</html>
