[logback-dev] svn commit: r2061 - in logback/trunk: . logback-classic logback-examples logback-examples/src/main/java/chapter3 logback-site/src/site/pages logback-site/src/site/pages/css logback-site/src/site/pages/manual

noreply.ceki at qos.ch noreply.ceki at qos.ch
Thu Dec 4 23:14:25 CET 2008


Author: ceki
Date: Thu Dec  4 23:14:25 2008
New Revision: 2061

Added:
   logback/trunk/logback-examples/src/main/java/chapter3/contextName.xml
   logback/trunk/logback-examples/src/main/java/chapter3/insertFromJNDI.xml
Modified:
   logback/trunk/logback-classic/pom.xml
   logback/trunk/logback-examples/pom.xml
   logback/trunk/logback-site/src/site/pages/css/common.css
   logback/trunk/logback-site/src/site/pages/faq.html
   logback/trunk/logback-site/src/site/pages/manual/architecture.html
   logback/trunk/logback-site/src/site/pages/manual/joran.html
   logback/trunk/logback-site/src/site/pages/manual/layouts.html
   logback/trunk/logback-site/src/site/pages/news.html
   logback/trunk/pom.xml

Log:
- removed slf4j-ext declaration from the parent pom. In child modules the slf4j-ext was being inserted in compile scope instead
  of test scope.
- updated documentation in relation to contextName and insertFromJNDI configuration directives. 

Modified: logback/trunk/logback-classic/pom.xml
==============================================================================
--- logback/trunk/logback-classic/pom.xml	(original)
+++ logback/trunk/logback-classic/pom.xml	Thu Dec  4 23:14:25 2008
@@ -48,6 +48,7 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-ext</artifactId>
+      <version>${slf4j.version}</version>
       <scope>test</scope>
     </dependency>
     
@@ -62,6 +63,7 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>log4j-over-slf4j</artifactId>
+      <version>${slf4j.version}</version>
       <scope>test</scope>
     </dependency>
 

Modified: logback/trunk/logback-examples/pom.xml
==============================================================================
--- logback/trunk/logback-examples/pom.xml	(original)
+++ logback/trunk/logback-examples/pom.xml	Thu Dec  4 23:14:25 2008
@@ -48,6 +48,7 @@
 		<dependency>
 			<groupId>org.slf4j</groupId>
 			<artifactId>slf4j-ext</artifactId>
+      <version>${slf4j.version}</version>
 		</dependency>
 
 		<dependency>

Added: logback/trunk/logback-examples/src/main/java/chapter3/contextName.xml
==============================================================================
--- (empty file)
+++ logback/trunk/logback-examples/src/main/java/chapter3/contextName.xml	Thu Dec  4 23:14:25 2008
@@ -0,0 +1,15 @@
+<configuration>
+
+  <contextName>myAppName</contextName>
+
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <layout class="ch.qos.logback.classic.PatternLayout">
+      <Pattern>%d %contextName [%t] %level %logger{36} - %msg%n</Pattern>
+    </layout>
+  </appender>
+
+  <root level="debug">
+    <appender-ref ref="STDOUT" />
+  </root>
+
+</configuration>
\ No newline at end of file

Added: logback/trunk/logback-examples/src/main/java/chapter3/insertFromJNDI.xml
==============================================================================
--- (empty file)
+++ logback/trunk/logback-examples/src/main/java/chapter3/insertFromJNDI.xml	Thu Dec  4 23:14:25 2008
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration>
+  <insertFromJNDI env-entry-name="java:comp/env/appName" as="appName" />
+  <contextName>${appName}</contextName>
+
+  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+    <layout class="ch.qos.logback.classic.PatternLayout">
+      <Pattern>%d %contextName %level %msg %logger{50}%n</Pattern>
+    </layout>
+  </appender>
+
+  <root level="DEBUG">
+    <appender-ref ref="CONSOLE" />
+  </root>
+</configuration>

Modified: logback/trunk/logback-site/src/site/pages/css/common.css
==============================================================================
--- logback/trunk/logback-site/src/site/pages/css/common.css	(original)
+++ logback/trunk/logback-site/src/site/pages/css/common.css	Thu Dec  4 23:14:25 2008
@@ -100,7 +100,7 @@
 	font-size: smaller;
 }
 
-strong { 
+.strong { 
   /*font-size: 13px;*/
   font-weight: bold;
 }
@@ -198,6 +198,13 @@
 	font-family: Courier, monospace;
 }
 
+.variable {
+	font-family: Courier, monospace;
+  font-style:italic;  
+}
+
+
+
 .attr {
 	font-family: Courier, monospace;
   font-style:italic; 

Modified: logback/trunk/logback-site/src/site/pages/faq.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/faq.html	(original)
+++ logback/trunk/logback-site/src/site/pages/faq.html	Thu Dec  4 23:14:25 2008
@@ -54,6 +54,12 @@
       </li>
 
       <li>
+        <a href="#overrideFromCL">
+          How can I disable logging from the command line?            
+        </a>
+      </li>
+
+      <li>
         <a href="#setup_jetty">How can Jetty be instructed to use
         logback-classic as its logging implementataion?
         </a>
@@ -190,6 +196,49 @@
         
 
         <!-- ========================================================= -->
+
+        <dt>
+          <a name="overrideFromCL" href="#overrideFromCL">
+            How can I disable logging from the command line?
+          </a>
+        </dt>
+        <dd>
+          <p>Logback does not allow disabling logging from the command
+          line. However, if the configuration file allows it, you can
+          set the level of logers on the command line via a java
+          system property. Here is such a configuration file.</p>
+
+          <p class="source">&lt;configuration>
+  &lt;appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+    &lt;layout class="ch.qos.logback.classic.PatternLayout">
+      &lt;Pattern>%d [%thread] %level %logger - %m%n&lt;/Pattern>
+    &lt;/layout>
+  &lt;/appender>
+  &lt;root level="<b>${root-level:-INFO}</b>">
+    &lt;appender-ref ref="CONSOLE"/>
+  &lt;/root>
+&lt;/configuration></p>
+
+
+          <p>Making use of <a
+          href="manual/joran.html#variableSubstitution">variable
+          substitution</a> as well as <a
+          href="manual/joran.html#defaultValuesForVariables">default
+          values for variables</a>, if the <span
+          class="variable">root-level</span> system property is set to
+          <code>OFF</code>, then all logging will be turned
+          off. However, if it is not set, it will assume the default
+          value of <code>INFO</code>.  Note that you can set the <span
+          class="variable">root-level</span> system property to any
+          level value of your choice. The value <code>OFF</code> is
+          just an example.
+
+          </p>
+          <hr/>
+        </dd>
+
+
+        <!-- ========================================================= -->
         
         <dt>
           <a name="setup_jetty"  href="#">

Modified: logback/trunk/logback-site/src/site/pages/manual/architecture.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/manual/architecture.html	(original)
+++ logback/trunk/logback-site/src/site/pages/manual/architecture.html	Thu Dec  4 23:14:25 2008
@@ -77,11 +77,12 @@
 		<p>The <code>Logger</code> class is part of the logback-classic
 		module. On the other hand, the <code>Appender</code> and
 		<code>Layout</code> interfaces are part of logback-core. As a
-		general-purpose module, logback-core has no notion of loggers.
+		general-purpose module, logback-core has no notion of
+		loggers.
 		</p>
     
-    <a name="LoggerContext"></a>
-    <h3>Logger context</h3>
+    <h3><a name="LoggerContext" href="#LoggerContext">Logger
+    context</a></h3>
 
 		<p>The first and foremost advantage of any logging API over plain
 		<code>System.out.println</code> resides in its ability to disable
@@ -89,13 +90,16 @@
 		unhindered. This capability assumes that the logging space, that
 		is, the space of all possible logging statements, is categorized
 		according to some developer-chosen criteria.  In logback-classic,
-		this categorization is an inherent part of loggers.
+		this categorization is an inherent part of loggers.  Every single
+		loggers is attached to a <code>LoggerContext</code> which is
+		responsible for manufacturing loggers as well as arranging them in
+		a tree like hierarchy.
 		</p>
 			
-		<p>
-			Loggers are named entities. Their names are case-sensitive and
-			they follow the hierarchical naming rule:
+		<p>Loggers are named entities. Their names are case-sensitive and
+		they follow the hierarchical naming rule:
 		</p>
+
 		<div class="definition">
 			<div class="deftitle">Named Hierarchy</div>
 			<p>
@@ -107,44 +111,42 @@
 			</p>
 		</div>
 
-		<p>
-			For example, the logger named <code>"com.foo"</code>
-			is a parent of the logger named <code>"com.foo.Bar"</code>. 
-			Similarly, <code>"java"</code>
-			is a parent of <code>"java.util"</code> and an ancestor of
-			<code>"java.util.Vector"</code>. 
-			This naming scheme should be familiar to most developers.
+		<p>For example, the logger named <code>"com.foo"</code> is a
+		parent of the logger named <code>"com.foo.Bar"</code>.  Similarly,
+		<code>"java"</code> is a parent of <code>"java.util"</code> and an
+		ancestor of <code>"java.util.Vector"</code>.  This naming scheme
+		should be familiar to most developers.
 		</p>
-		<p>
-			The root logger resides at the top of the logger hierarchy.  It
-			is exceptional in that it is part of every hierarchy at its
-			inception. Like every logger, it can be retrieved by its name,
-			as follows:
+
+		<p>The root logger resides at the top of the logger hierarchy.  It
+		is exceptional in that it is part of every hierarchy at its
+		inception. Like every logger, it can be retrieved by its name, as
+		follows:
 		</p>
-		<div class="source"><pre>Logger rootLogger = LoggerFactory.getLogger(<a href="../apidocs/constant-values.html#ch.qos.logback.classic.LoggerContext.ROOT_NAME">LoggerContext.<em>ROOT_NAME</em></a>);</pre></div>
+		
+    <p class="source">Logger rootLogger = LoggerFactory.getLogger(<a href="../apidocs/constant-values.html#ch.qos.logback.classic.LoggerContext.ROOT_NAME">LoggerContext.<em>ROOT_NAME</em></a>);</p>
 
-		<p>
-			All other loggers are also retrieved with the class static
-			<code>getLogger</code> method found in the <a
-			href="http://www.slf4j.org/api/org/slf4j/Logger.html">org.slf4j.LoggerFactory</a>
-			class. This method takes the name of the desired logger as a
-			parameter. Some of the basic methods in the <code>Logger</code>
-			interface are listed below.
+		<p>All other loggers are also retrieved with the class static
+		<code>getLogger</code> method found in the <a
+		href="http://www.slf4j.org/api/org/slf4j/Logger.html">org.slf4j.LoggerFactory</a>
+		class. This method takes the name of the desired logger as a
+		parameter. Some of the basic methods in the <code>Logger</code>
+		interface are listed below.
 		</p>
 
-		<div class="source"><pre>package org.slf4j; 
+		<p class="source">package org.slf4j; 
 public interface Logger {
 
   // Printing methods: 
+  public void trace(String message);
   public void debug(String message);
   public void info(String message); 
   public void warn(String message); 
   public void error(String message); 
-  public void fatal(String message); 
-}</pre></div>
+}</p>
 
 		<p>Loggers may be assigned levels. The set of possible levels,
-		that is DEBUG, INFO, WARN and ERROR are defined in the
+		that is TRACE, DEBUG, INFO, WARN and ERROR are defined in the
 		<code>ch.qos.logback.classic.Level</code> class. Note that in
 		logback, the level class is final and cannot be derived, as a much
 		more flexible approach exist in the form of <code>Marker</code>
@@ -166,15 +168,13 @@
 			</p>
 		</div>
 	
-		<p>
-			To ensure that all loggers can eventually inherit a level, the
-			root logger always has an assigned level. By default, this level
-			is DEBUG.
-		</p>
-		<p>
-			Below are four examples with various assigned level values and
-			the resulting effective (inherited) levels according to the
-			level inheritance rule.
+		<p>To ensure that all loggers can eventually inherit a level, the
+		root logger always has an assigned level. By default, this level
+		is DEBUG.
+		</p>
+		<p>Below are four examples with various assigned level values and
+		the resulting effective (inherited) levels according to the level
+		inheritance rule.
 		</p>
 
 		<em>Example 1</em>

Modified: logback/trunk/logback-site/src/site/pages/manual/joran.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/manual/joran.html	(original)
+++ logback/trunk/logback-site/src/site/pages/manual/joran.html	Thu Dec  4 23:14:25 2008
@@ -1148,8 +1148,9 @@
   "golden".</p>
   
 
-  <a name="Include"></a>
-  <h3>File inclusion</h3>
+ 
+  <h3><a name="fileInclusion" href="#fileInclusion">File
+  inclusion</a></h3>
 
   <p>Joran supports including parts of a configuration file from
   another file. This is done by declaring a <code>&lt;include></code>
@@ -1192,8 +1193,75 @@
   </p>
 
 
+  <h3><a name="contextName" href="#contextName">Setting the context name</a></h3>
 
+  <p>As mentioned <a href="architecture.html#LoggerContext">in an
+  earlier chapter</a>, every logger is attached to logger context. By
+  default, the logger context is called "default". However, you can
+  set a different name with the help of the
+  <code>&lt;contextName></code> configuration directive. Note that
+  once set, the logger context name <a
+  href="../apidocs/ch/qos/logback/core/ContextBase.html#setName(java.lang.String)">cannot
+  be changed</a>. Setting the context name is a simple and
+  straightforward method in order to distinguish between multiple
+  applications logging to the same target.
+  </p>
+  
+  <em>Example 3.<span class="autoEx"/>: Set the context name and display it
+  (logback-examples/src/main/java/chapter3/contextName.xml)</em>
+  <p class="source">&lt;configuration>
+  <b>&lt;contextName>myAppName&lt;/contextName></b>
+  &lt;appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    &lt;layout class="ch.qos.logback.classic.PatternLayout">
+      &lt;Pattern>%d <b>%contextName</b> [%t] %level %logger{36} - %msg%n&lt;/Pattern>
+    &lt;/layout>
+  &lt;/appender>
+
+  &lt;root level="debug">
+    &lt;appender-ref ref="STDOUT" />
+  &lt;/root>
+&lt;/configuration></p>
+
+  <p>This last examples illustrates naming of the logger
+  context. Adding the the <a
+  href="layouts.html#conversionWord">contextName conversion word</a>
+  in layout's pattern will output the said name.</p>
+
+   <h3><a name="insertFromJNDI" href="#insertFromJNDI">Obtaining
+   variables from JNDI</a></h3>
+
+   <p>Under certain circumstances, you may want to make use of
+   env-entries in JNDI. The <code>&lt;insertFromJNDI></code>
+   configuration directive extracts an env-entry from JNDI and inserts
+   it as variable specified by the <span class="attr">as</span>
+   attribute.
+   </p>
+
+   <em>Example 3.<span class="autoEx"/>: Insert as properties env-entries obtained via JNDI
+  (logback-examples/src/main/java/chapter3/insertFromJNDI.xml)</em>
+   <p class="source">&lt;configuration>
+  <b>&lt;insertFromJNDI env-entry-name="java:comp/env/appName" as="<span class="green">appName"</span> /></b>
+  <b>&lt;contextName><span class="green">${appName}</span>&lt;/contextName></b>
+
+  &lt;appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+    &lt;layout class="ch.qos.logback.classic.PatternLayout">
+      &lt;Pattern>%d %contextName %level %msg %logger{50}%n&lt;/Pattern>
+    &lt;/layout>
+  &lt;/appender>
+
+  &lt;root level="DEBUG">
+    &lt;appender-ref ref="CONSOLE" />
+  &lt;/root>
+&lt;/configuration></p>
+
+  <p>In this last example, the "java:comp/env/appName" env-entry is
+  inserted as the <span class="variable">appName</span> property. Note
+  that the <code>&lt;contextName></code> directive sets the context
+  name based on the value of the <span class="variable">appName</span>
+  property inserted by the previous <code>&lt;insertFromJNDI></code>
+  directive..
 
+</p>
 
   <script src="../templates/footer.js" type="text/javascript"></script>
 </div>

Modified: logback/trunk/logback-site/src/site/pages/manual/layouts.html
==============================================================================
--- logback/trunk/logback-site/src/site/pages/manual/layouts.html	(original)
+++ logback/trunk/logback-site/src/site/pages/manual/layouts.html	Thu Dec  4 23:14:25 2008
@@ -382,7 +382,7 @@
 
 		<table class="bodyTable properties" border="0">
       <tr>
-        <th>Conversion Word</th>
+        <th><a name="conversionWord" href="#conversionWord">Conversion Word</a></th>
         <th>Effect</th>
       </tr>
 
@@ -477,12 +477,20 @@
 				</td>
 			</tr>
 
-			<tr>
+      <tr>
+        <td align="center">
+          <b>contextName</b><br/>
+          <b>cn</b><br/></td>
+          <td>Outputs the name of the logger context to which the
+          logger at the origin of the logging event is attached
+          to. </td>
+      </tr>
+			<tr class="alt">
         <td align="center">
           <b>d</b>{<em>pattern</em>} <br /> 
           <b>date</b>{<em>pattern</em>} <br />
         </td>
-        <td>
+        <td >
 					<p>Used to output the date of the logging event.  The date
 					conversion word may be followed by an option enclosed
 					between braces.</p>
@@ -524,7 +532,7 @@
 				</td>
 			</tr>
 
-			<tr class="alt">
+			<tr>
 				<td align="center">
 					<b>F / file</b>
 				</td>
@@ -541,7 +549,7 @@
 				</td>
 			</tr>
 
-			<tr>
+			<tr class="alt">
 				<td align="center">
 					<b>caller{depth}</b>
 					<b>caller{depth, evaluator-1, ... evaluator-n}</b>
@@ -591,7 +599,7 @@
 				</td>
 			</tr>
 
-			<tr class="alt">
+			<tr>
 				<td align="center">
 					<b>L / line</b>
 				</td>
@@ -610,7 +618,7 @@
 			</tr>
 
 
-			<tr>
+			<tr class="alt">
 				<td align="center">
 					<b>m / msg / message</b>
 				</td>
@@ -620,7 +628,7 @@
 				</td>
 			</tr>
 
-			<tr class="alt">
+			<tr>
 				<td align="center">
 					<b>M / method</b>
 				</td>
@@ -638,7 +646,7 @@
 				</td>
 			</tr>
 
-			<tr>
+			<tr class="alt">
 				<td align="center">
 					<b>n</b>
 				</td>
@@ -659,14 +667,14 @@
 
 			</tr>
 
-			<tr class="alt">
+			<tr>
 				<td align="center">
 					<b>p / le / level</b>
 				</td>
 				<td>Used to output the level of the logging event.</td>
 			</tr>
 
-			<tr>
+			<tr class="alt">
 
 				<td align="center">
 					<b>r / relative</b>
@@ -680,7 +688,7 @@
 			</tr>
 
 
-			<tr class="alt">
+			<tr>
 				<td align="center">
 					<b>t / thread</b>
 				</td>
@@ -692,7 +700,7 @@
 
 			</tr>
 
-			<tr>
+			<tr  class="alt">
 				<td align="center">
 					<b>X</b>{<em>key</em>} <br /> 
 					<b>mdc</b>{<em>key</em>} <br />
@@ -721,7 +729,7 @@
 
 				</td>
 			</tr>
-			<tr class="alt">
+			<tr>
 				<td align="center">
 					<b>ex</b>{<em>length</em>} <br /> 
           	<b>exception</b>{<em>length</em>} <br /> 
@@ -801,8 +809,7 @@
 				</td>
 			</tr>
       
-
-      <tr>
+      <tr class="alt">
 				<td align="center">
 					<b>xEx</b>{<em>length</em>} <br /> 
           <b>xException</b>{<em>length</em>} <br /> 
@@ -856,10 +863,9 @@
           
         </td>
 
-
       </tr>
 
-      <tr class="b">
+      <tr>
         <td align="center">
           <b>nopex</b> <br />
           <b>nopexception</b>
@@ -879,7 +885,7 @@
         </td>
       </tr>
 
-      <tr class="a">
+      <tr class="alt">
         <td align="center">
           <b>marker</b>
         </td>

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	Thu Dec  4 23:14:25 2008
@@ -96,6 +96,13 @@
     a JVM with a <code>SecurityManager</code>.
     </p>
 
+    <p>Invoking the <code>LoggerContext.reset()</code> method resets
+    logger levels to their default value, that is <code>DEBUG</code>
+    for the root logger and <code>null</code> for all other
+    loggers. This was requested in <a
+    href="http://jira.qos.ch/browse/LBCLASSIC-90">LBCLASSIC-90</a> by
+    Mateusz Jedruch.
+    </p>
 
     <!-- ======================== minor ================== -->
 

Modified: logback/trunk/pom.xml
==============================================================================
--- logback/trunk/pom.xml	(original)
+++ logback/trunk/pom.xml	Thu Dec  4 23:14:25 2008
@@ -73,17 +73,6 @@
         <version>${slf4j.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>log4j-over-slf4j</artifactId>
-        <version>${slf4j.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-ext</artifactId>
-        <version>${slf4j.version}</version>
-      </dependency>
-		
-      <dependency>
         <groupId>janino</groupId>
         <artifactId>janino</artifactId>
         <version>2.4.3</version>


More information about the logback-dev mailing list