You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2005/03/03 19:26:40 UTC
cvs commit: jakarta-tomcat-catalina/webapps/docs logging.xml tomcat-docs.xsl
remm 2005/03/03 10:26:40
Modified: webapps/docs logging.xml tomcat-docs.xsl
Log:
- Documentation on JULI.
Revision Changes Path
1.6 +120 -8 jakarta-tomcat-catalina/webapps/docs/logging.xml
Index: logging.xml
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/logging.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- logging.xml 7 Dec 2004 16:38:15 -0000 1.5
+++ logging.xml 3 Mar 2005 18:26:40 -0000 1.6
@@ -128,14 +128,37 @@
</section>
<section name="java.util.logging">
+
<p>
In order to configure JDK logging you should have JDK 1.4+. Tomcat 5.5 is intended for
JDK 5.0, but can be run on JDK 1.4 using a compatibility package.
</p>
<p>
- In order to configure JDK Logging, you should find the JDK's logging.properties file. Check
- your JAVA_HOME environment setting to see which JDK Tomcat is using (or maybe JRE 5.0 as Tomcat
- can now run on a JRE from version 5.5). The file will be in <code>$JAVA_HOME/jre/lib</code>.
+ The default implemenatation of java.util.logging provided in the JDK is too limited to be
+ useful. A limitation of JDK Logging appears to be the inability to have per-web application logging,
+ as the configuration is per-VM. As a result, Tomcat will, in the default configuration,
+ replace the default LogManager implementation with a container friendly implementation
+ called JULI, which addresses these shortcomings. It supports the same configuration mechanisms
+ as the standard JDK java.util.logging, using either a programmatic approach, or properties
+ files. The main difference is that per-classloader properties files can be set (which enables easy
+ redeployment friendly webapp configuration), and the properties files support slightly extended
+ constructs which allows more freedom for defining handlers and assigning them to loggers.
+ </p>
+ <p>
+ JULI is enabled by default in Tomcat 5.5, and supports per classloader configuration, in addition to
+ the regular global java.util.logging configuration. This means that logging can be configured at
+ the following layers:
+ <ul>
+ <li>In the JDK's logging.properties file. Check
+ your JAVA_HOME environment setting to see which JDK Tomcat is using (or maybe JRE 5.0 as Tomcat
+ can now run on a JRE from version 5.5). The file will be in <code>$JAVA_HOME/jre/lib</code>.
+ Alternately, it can also use a global configuration file located elsewhere by using the
+ system property <code>java.util.logging.config.file</code>, or programmatic configuration using
+ <code>java.util.logging.config.class</code>.</li>
+ <li>In each classloader using a logging.properties file. This means that it is possible to have a
+ configuration for the Tomcat core, as well as separate configurations for each webapps which will
+ have the same lifecycle as the webapps.</li>
+ </ul>
</p>
<p>
The default logging.properties specifies a ConsoleHandler for routing logging to stdout and
@@ -143,17 +166,106 @@
WARN, FINE, FINEST or ALL. The logging.properties shipped with JDK is set to INFO. You
can also target specific packages to collect logging from and specify a level. Here is how
you would set debugging from Tomcat. You would need to ensure the ConsoleHandler's level is also
- set to collect this threshold, so FINEST or ALL should be set.
+ set to collect this threshold, so FINEST or ALL should be set. Please refer to Sun's java.util.logging
+ documentation for the complete details.
</p>
<p>
<source>org.apache.catalina.level=FINEST</source>
</p>
-
<p>
- A limitation of JDK Logging appears to be the inability to have per-web application logging,
- as the configuration is per-VM. It is advisable to use log4j for per-web application logging
- as explained below.
+ The configuration used by JULI is extremely similar, but uses a few extensions to allow better
+ flexibility in assigning loggers. The main differences are:
+ <ul>
+ <li>A prefix may be added to handler names, so that multiple handlers of a single class may be
+ instantiated. A prefix is a String which starts with a digit, and ends with '.'. For example,
+ <code>22foobar.</code> is a valid prefix.</li>
+ <li>As in Java 5.0, loggers can define a list of handlers using the <code>loggerName.handlers</code>
+ property.</li>
+ <li>By default, loggers will not delegate to their parent if they have associated handlers. This
+ may be changed per logger using the <code>loggerName.useParentHandlers</code> property, which accepts
+ a boolean value.</li>
+ <li>The root logger can define its set of handlers using a <code>.handlers</code> property.</li>
+ <li>System property replacement for property values which start with ${sytstemPropertyName}.</li>
+ </ul>
</p>
+ <p>
+ Example logging.properties file to be placed in common/classes:
+ <source>
+handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, \
+ 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, \
+ java.util.logging.ConsoleHandler
+
+.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+############################################################
+# Handler specific properties.
+# Describes specific configuration info for Handlers.
+############################################################
+
+1catalina.org.apache.juli.FileHandler.level = FINE
+1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+1catalina.org.apache.juli.FileHandler.prefix = catalina.
+
+2localhost.org.apache.juli.FileHandler.level = FINE
+2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+2localhost.org.apache.juli.FileHandler.prefix = localhost.
+
+3manager.org.apache.juli.FileHandler.level = FINE
+3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+3manager.org.apache.juli.FileHandler.prefix = manager.
+
+4admin.org.apache.juli.FileHandler.level = FINE
+4admin.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+4admin.org.apache.juli.FileHandler.prefix = admin.
+
+java.util.logging.ConsoleHandler.level = FINE
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = \
+ 2localhost.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = \
+ 3manager.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].handlers = \
+ 4admin.org.apache.juli.FileHandler
+
+# For example, set the com.xyz.foo logger to only log SEVERE
+# messages:
+#org.apache.catalina.startup.ContextConfig.level = FINE
+#org.apache.catalina.startup.HostConfig.level = FINE
+#org.apache.catalina.session.ManagerBase.level = FINE
+ </source>
+ </p>
+
+ <p>
+ Example logging.properties for the servlet-examples web application to be placed
+ in WEB-INF/classes inside the web application:
+ <source>
+handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+############################################################
+# Handler specific properties.
+# Describes specific configuration info for Handlers.
+############################################################
+
+org.apache.juli.FileHandler.level = FINE
+org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+org.apache.juli.FileHandler.prefix = servlet-examples.
+
+java.util.logging.ConsoleHandler.level = FINE
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+ </source>
+ </p>
</section>
1.11 +2 -2 jakarta-tomcat-catalina/webapps/docs/tomcat-docs.xsl
Index: tomcat-docs.xsl
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/tomcat-docs.xsl,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- tomcat-docs.xsl 3 Jan 2005 22:37:38 -0000 1.10
+++ tomcat-docs.xsl 3 Mar 2005 18:26:40 -0000 1.11
@@ -159,7 +159,7 @@
<xsl:comment>PAGE FOOTER</xsl:comment>
<tr><td colspan="2">
<div align="center"><font color="{$body-link}" size="-1"><em>
- Copyright © 1999-2004, Apache Software Foundation
+ Copyright © 1999-2005, Apache Software Foundation
</em></font></div>
</td></tr>
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org