[logback-dev] svn commit: r859 - in logback/trunk: logback-core/src/main/java/ch/qos/logback/core/rolling logback-site/src/site/fml

noreply.seb at qos.ch noreply.seb at qos.ch
Thu Nov 2 21:03:49 CET 2006


Author: seb
Date: Thu Nov  2 21:03:48 2006
New Revision: 859

Modified:
   logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/FixedWindowRollingPolicy.java
   logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/RollingFileAppender.java
   logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/TimeBasedRollingPolicy.java
   logback/trunk/logback-site/src/site/fml/codes.fml

Log:
Moved tests to getNewActiveFileName method
Added an entry to codes.fml when filename is not set

Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/FixedWindowRollingPolicy.java
==============================================================================
--- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/FixedWindowRollingPolicy.java	(original)
+++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/FixedWindowRollingPolicy.java	Thu Nov  2 21:03:48 2006
@@ -21,7 +21,7 @@
  * according to a fixed window algorithm as described below.
  * 
  * <p>
- * The <b>ActiveFileName</b> property, which is required, represents the name
+ * The <b>File</b> property, which is required, represents the name
  * of the file where current logging output will be written. The
  * <b>FileNamePattern</b> option represents the file name pattern for the
  * archived (rolled over) log files. If present, the <b>FileNamePattern</b>
@@ -54,6 +54,7 @@
 public class FixedWindowRollingPolicy extends RollingPolicyBase {
   static final String FNP_NOT_SET = "The FileNamePattern option must be set before using FixedWindowRollingPolicy. ";
   static final String SEE_FNP_NOT_SET = "See also http://logback.qos.ch/codes.html#tbr_fnp_not_set";
+  static final String SEE_PARENT_FN_NOT_SET = "Please refer to http://logback.qos.ch/codes.html#fwrp_parentFileName_not_set";
   int maxIndex;
   int minIndex;
   RenameUtil util = new RenameUtil();
@@ -82,9 +83,10 @@
       addWarn(SEE_FNP_NOT_SET);
       throw new IllegalStateException(FNP_NOT_SET + SEE_FNP_NOT_SET);
     }
-    // if (activeFileName == null) {
-    if (getNewActiveFileName() == null) {
-      addWarn("The ActiveFile name option must be set before using this rolling policy.");
+
+    if (getParentFileName() == null) {
+      addWarn("The File name option must be set before using this rolling policy.");
+      addWarn(SEE_PARENT_FN_NOT_SET);
       throw new IllegalStateException("The ActiveFileName option must be set.");
     }
 

Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/RollingFileAppender.java
==============================================================================
--- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/RollingFileAppender.java	(original)
+++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/RollingFileAppender.java	Thu Nov  2 21:03:48 2006
@@ -81,9 +81,7 @@
     if (rollingPolicy != null) {  
       //if no active file name was set, then it's the responsability of the
       //rollingPolicy to create one.
-      if (getFile() == null) {
-        setFile(rollingPolicy.getNewActiveFileName());
-      }
+      setFile(rollingPolicy.getNewActiveFileName());
       
       activeFileCache = new File(getFile());
       addInfo("Active log file name: "+ getFile());

Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/TimeBasedRollingPolicy.java
==============================================================================
--- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/TimeBasedRollingPolicy.java	(original)
+++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/TimeBasedRollingPolicy.java	Thu Nov  2 21:03:48 2006
@@ -246,11 +246,9 @@
       }
     }
     
-    //if we already generated a name, then we have to update
-    //the fileAppender with a new active file name.
-    if (getParentFileName() == lastGeneratedFileName) {
-      setParentFileName(getNewActiveFileName());
-    }
+    //let's update the parent active file name
+    setParentFileName(getNewActiveFileName());
+    
   }
 
   /**
@@ -273,16 +271,16 @@
    * the RollingPolicy knows it's responsible for the change of the
    * file name.
    * 
-   * 
-   * tmp note: !!!!! This is called only once at the start of the appender, 
-   * and only if the parent file name is null, so no test is required.
-   *
    */
   public String getNewActiveFileName() {
-    String newName = activeFileNamePattern.convertDate(lastCheck);
-    addInfo("Generated a new name for RollingFileAppender: " + newName);
-    lastGeneratedFileName = newName;
-    return newName;
+    if (getParentFileName() == null || getParentFileName() == lastGeneratedFileName) {
+      String newName = activeFileNamePattern.convertDate(lastCheck);
+      addInfo("Generated a new name for RollingFileAppender: " + newName);
+      lastGeneratedFileName = newName;
+      return newName;
+    } else {
+      return getParentFileName();
+    }
   }
 
   public boolean isTriggeringEvent(File file, final Object event) {

Modified: logback/trunk/logback-site/src/site/fml/codes.fml
==============================================================================
--- logback/trunk/logback-site/src/site/fml/codes.fml	(original)
+++ logback/trunk/logback-site/src/site/fml/codes.fml	Thu Nov  2 21:03:48 2006
@@ -39,8 +39,31 @@
 							for more information.
 						</p>
 					</answer>
-
 				</faq>
+				
+				<faq id="fwrp_parentFileName_not_set">
+
+					<question>
+					<p>The File name option must be set before <code>FixedWindowRollingPolicy</code>.</p>
+					</question>
+
+					<answer>
+						<p>
+							The <span class="option">File</span> option is mandatory with <code>FixedWindowRollingPolicy</code>. Moreover, the File option must be
+							set before the declaration configuring <code>FixedWindowRollingPolicy</code>.
+						</p>
+						<p>
+							See the logback manual's chapter about 
+							<a
+								href="http://logback.qos.ch/manual/appenders.html#FixedWindowRollingPolicy">
+								FixedWindowRollingPolicy
+							</a>
+							for more information.
+						</p>
+					</answer>
+				</faq>				
+				
+				
 				<faq id="socket_no_host">
 					<question>
 						No remote host or address is set for



More information about the logback-dev mailing list