[logback-dev] svn commit: r2354 - in logback/trunk: . logback-access logback-classic logback-classic/src/main/java/ch/qos/logback/classic/turbo logback-core logback-examples logback-examples/src/main/java/chapter3 logback-site logback-site/src/site/pages logback-site/src/site/pages/manual

noreply.ceki at qos.ch noreply.ceki at qos.ch
Wed Jul 15 15:02:00 CEST 2009


Author: ceki
Date: Wed Jul 15 15:01:59 2009
New Revision: 2354

Added:
   logback/trunk/logback-examples/src/main/java/chapter3/scan1.xml
Modified:
   logback/trunk/logback-access/pom.xml
   logback/trunk/logback-classic/pom.xml
   logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.java
   logback/trunk/logback-core/pom.xml
   logback/trunk/logback-examples/pom.xml
   logback/trunk/logback-site/pom.xml
   logback/trunk/logback-site/src/site/pages/manual/configuration.html
   logback/trunk/logback-site/src/site/pages/news.html
   logback/trunk/pom.xml

Log:
- preparing release 0.9.16

Modified: logback/trunk/logback-access/pom.xml
==============================================================================
--- logback/trunk/logback-access/pom.xml	(original)
+++ logback/trunk/logback-access/pom.xml	Wed Jul 15 15:01:59 2009
@@ -5,7 +5,7 @@
   <parent>
     <groupId>ch.qos.logback</groupId>
     <artifactId>logback-parent</artifactId>
-    <version>0.9.16-SNAPSHOT</version>
+    <version>0.9.16</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>

Modified: logback/trunk/logback-classic/pom.xml
==============================================================================
--- logback/trunk/logback-classic/pom.xml	(original)
+++ logback/trunk/logback-classic/pom.xml	Wed Jul 15 15:01:59 2009
@@ -5,7 +5,7 @@
   <parent>
     <groupId>ch.qos.logback</groupId>
     <artifactId>logback-parent</artifactId>
-    <version>0.9.16-SNAPSHOT</version>
+    <version>0.9.16</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>

Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.java
==============================================================================
--- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.java	(original)
+++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.java	Wed Jul 15 15:01:59 2009
@@ -33,7 +33,12 @@
   final static long INIT = System.currentTimeMillis();
   final static long SENTINEL = Long.MAX_VALUE;
 
-  final static long DEFAULT_REFRESH_PERIOD = 60 * 1000; // 1 minute
+  /**
+   * Scan for changes in configuration file once every minute.
+   */
+  // 1 minute - value mentioned in documentation
+  public final static long DEFAULT_REFRESH_PERIOD = 60 * 1000;
+
   long refreshPeriod = DEFAULT_REFRESH_PERIOD;
   File fileToScan;
   protected long nextCheck;
@@ -107,10 +112,10 @@
     nextCheck = now + refreshPeriod;
   }
 
-//  String stem() {
-//    return currentThreadName() + ", context " + context.getName()
-//        + ", nextCheck=" + (nextCheck - INIT);
-//  }
+  // String stem() {
+  // return currentThreadName() + ", context " + context.getName()
+  // + ", nextCheck=" + (nextCheck - INIT);
+  // }
 
   // This method is synchronized to prevent near-simultaneous re-configurations
   protected boolean changeDetected() {

Modified: logback/trunk/logback-core/pom.xml
==============================================================================
--- logback/trunk/logback-core/pom.xml	(original)
+++ logback/trunk/logback-core/pom.xml	Wed Jul 15 15:01:59 2009
@@ -5,7 +5,7 @@
   <parent>
     <groupId>ch.qos.logback</groupId>
     <artifactId>logback-parent</artifactId>
-    <version>0.9.16-SNAPSHOT</version>
+    <version>0.9.16</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>

Modified: logback/trunk/logback-examples/pom.xml
==============================================================================
--- logback/trunk/logback-examples/pom.xml	(original)
+++ logback/trunk/logback-examples/pom.xml	Wed Jul 15 15:01:59 2009
@@ -5,7 +5,7 @@
   <parent>
     <groupId>ch.qos.logback</groupId>
     <artifactId>logback-parent</artifactId>
-    <version>0.9.16-SNAPSHOT</version>
+    <version>0.9.16</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>

Added: logback/trunk/logback-examples/src/main/java/chapter3/scan1.xml
==============================================================================
--- (empty file)
+++ logback/trunk/logback-examples/src/main/java/chapter3/scan1.xml	Wed Jul 15 15:01:59 2009
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?> 
+
+<configuration scan="true">
+
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
+    <layout>
+      <Pattern>%d [%thread] %-5level %logger{36} - %msg%n</Pattern>
+    </layout>
+  </appender>
+  
+  <root level="debug">
+    <appender-ref ref="STDOUT" />
+  </root>
+
+</configuration>
\ No newline at end of file

Modified: logback/trunk/logback-site/pom.xml
==============================================================================
--- logback/trunk/logback-site/pom.xml	(original)
+++ logback/trunk/logback-site/pom.xml	Wed Jul 15 15:01:59 2009
@@ -3,7 +3,7 @@
 	<parent>
 		<groupId>ch.qos.logback</groupId>
 		<artifactId>logback-parent</artifactId>
-		<version>0.9.16-SNAPSHOT</version>
+		<version>0.9.16</version>
 	</parent>
 
 	<modelVersion>4.0.0</modelVersion>

Modified: logback/trunk/logback-site/src/site/pages/manual/configuration.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/manual/configuration.html	(original)
+++ logback/trunk/logback-site/src/site/pages/manual/configuration.html	Wed Jul 15 15:01:59 2009
@@ -359,12 +359,10 @@
 
    <p>If instructed to do so, logback-classic will scan for changes in
    its configuration file and automatically reconfigure itself when
-   the said configuration file changes.
-   </p>
-   
-   <p>Logback-classic can be instructed to scan for changes in its
-   configuration file and to automatically re-configure itself by
-   setting the <span class="attr">scan</span> atrribute of the
+   the said configuration file changes. In order to instruct
+   logback-classic to scan for changes in its configuration file and
+   to automatically re-configure itself set the <span
+   class="attr">scan</span> atrribute of the
    <code>&lt;configuration></code> element to true, as shown next.
 
    </p>
@@ -375,8 +373,56 @@
 <pre class="prettyprint source">
 &lt;configuration <b>scan="true"</b>> 
   ...
-&lt;/configuration> 
-</pre>
+&lt;/configuration> </pre>
+
+
+   <p>By default, the configuration file will be scanned for changes
+   once every minute. You can specify a different scanning period by
+   setting the <span class="attr">scanPeriod</span> attribute of the
+   <code>&lt;configuration></code> element. Values can be specified in
+   units of milliseconds, seconds, minutes or hours. Here is an
+   example:</p>
+
+  <em>Example 3.<span class="autoEx"/>: Specifying a different
+  scanning period
+  (logback-examples/src/main/java/chapter3/scan2.xml)</em>
+
+<pre class="prettyprint source">
+&lt;configuration scan="true" <b>scanPeriod="30 seconds"</b> > 
+  ...
+&lt;/configuration> </pre>
+
+   <p>If no unit of time is specified, then the unit of time is
+   assumed to be milliseconds, which is usually inappropriate. If you
+   change the default scanning period, do not forget to specify a time
+   unit.
+   </p>
+
+   <p>Behind the scenes, when you set the scan attribute to true, a
+   <code>TurboFilter</code> called <a
+   href="../xref/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.html">ReconfigureOnChangeFilter</a>
+   will be installed. TurboFilters are described in a <a
+   href="filters.html#TurboFilter">later chapter</a>. As a
+   consequence, scanning is done "in-thread", that is anytime a
+   printing method of logger is invoked. For example, for a logger
+   named <code>myLogger</code>, when you write
+   "myLogger.debug("hello");", and if the scan attribute is set to
+   true, then <code>ReconfigureOnChangeFilter</code> will be
+   invoked. Moreover, the said filter will be invoked even if
+   <code>myLogger</code> is disabled for the debug level.
+   </p>
+
+   <p>Given that <code>ReconfigureOnChangeFilter</code> is invoked
+   every time <em>any</em> logger is invoked, the filter is
+   performance critical. In order to improve performance, instead of
+   checking whether to scan or not on every logger invocation,
+   <code>ReconfigureOnChangeFilter</code> is in reality "alive" only
+   once every 16 logging operations. In short, when a configuration
+   file changes, it will be automatically reloaded after a delay
+   determined by the scanning period and several logger invocations.
+   </p>
+
+   
 
    <h3>Invoking <code>JoranConfigurator</code> directly</h3>
 

Modified: logback/trunk/logback-site/src/site/pages/news.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/news.html	(original)
+++ logback/trunk/logback-site/src/site/pages/news.html	Wed Jul 15 15:01:59 2009
@@ -29,20 +29,39 @@
 
     <hr width="80%" align="center" />
 
-    <h3>Nth of July 2009 - Release of version 0.9.16</h3>
+    <h3>15th of July 2009 - Release of version 0.9.16</h3>
+
+    <p>In addition to nifty new features, this release contains
+    several important internal changes. Given the importance of some
+    of those internal changes, <em>this release may be less stable
+    than previous logback releases</em>.</p>
 
     <p>In logback-classic, <a
     href="xref/ch/qos/logback/classic/spi/LoggingEvent.html"><code>LoggingEvent</code></a>
     now implements the <a
     href="xref/ch/qos/logback/classic/spi/ILoggingEvent.html"><code>ILoggingEvent</code></a>
     interface. All logback-classic components expect to process
-    <code>ILoggingEvent</code> intances. Moreover, events which sent
+    <code>ILoggingEvent</code> instances. Moreover, events which sent
     to a remote host are now of type <a
     href="xref/ch/qos/logback/classic/spi/LoggingEventVO.html"><code>LoggingEventVO</code></a>.
     </p>
 
+    <p>Logback-classic will now <a
+    href="manual/configuration.html#autoScan">automatically
+    re-configure itself</a> when its configuration file is
+    modified. This enhancement was requested in <a
+    href="http://jira.qos.ch/browse/LBCORE-59">LBCORE-59</a> by
+    Michael Osipov.</p>
+
+    <p>FileAppender and its derived class RolllingFileAppender are now
+    based on a finer-grain synchronization model. This change is aimed
+    at reducing various synchronization related bugs, namely <a
+    href="http://jira.qos.ch/browse/LBCLASSIC-135">LBCLASSIC-135</a>
+    and its various sub-tasks.
+    </p>
+
     <p>Fixed a bug in the localLevelReset() method in the
-    <code>Logger</code> class whcih inadvertently used the DEBUG_INT
+    <code>Logger</code> class which inadvertently used the DEBUG_INT
     value in the org.slf4j.spi.LocationAwareLogger interface instead
     of the DEBUG_INT value in ch.qos.logback.classic.Level class. The
     issue was first identified by Andy Ruch <a

Modified: logback/trunk/pom.xml
==============================================================================
--- logback/trunk/pom.xml	(original)
+++ logback/trunk/pom.xml	Wed Jul 15 15:01:59 2009
@@ -5,7 +5,7 @@
   
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-parent</artifactId>
-  <version>0.9.16-SNAPSHOT</version>
+  <version>0.9.16</version>
   <packaging>pom</packaging>
   <name>Logback-Parent</name>
   


More information about the logback-dev mailing list