You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by og...@apache.org on 2005/04/04 10:36:00 UTC

svn commit: r160004 - jakarta/commons/proper/httpclient/trunk/xdocs/logging.xml

Author: oglueck
Date: Mon Apr  4 01:35:59 2005
New Revision: 160004

URL: http://svn.apache.org/viewcvs?view=rev&rev=160004
Log:
enhanced guide
added java.util.logging section

reviewed by: Oleg Kalnichevski

Modified:
    jakarta/commons/proper/httpclient/trunk/xdocs/logging.xml

Modified: jakarta/commons/proper/httpclient/trunk/xdocs/logging.xml
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/xdocs/logging.xml?view=diff&r1=160003&r2=160004
==============================================================================
--- jakarta/commons/proper/httpclient/trunk/xdocs/logging.xml (original)
+++ jakarta/commons/proper/httpclient/trunk/xdocs/logging.xml Mon Apr  4 01:35:59 2005
@@ -11,14 +11,30 @@
    <body>
       <section name="Logging Practices">
          <p>
-            <em>HttpClient</em> utilizes the logging interface provided by the
+            Being a library HttpClient is not to dictate which logging framework
+            the user has to use. Therefore  <em>HttpClient</em> utilizes the logging 
+            interface provided by the
             <a href="http://jakarta.apache.org/commons/logging/">
             Jakarta Commons Logging</a> package.  <em>Commons Logging</em> provides
             a simple and generalized 
             <a href="http://jakarta.apache.org/commons/logging/api/index.html">
-            log interface</a> to various logging packages.  By using
+            log interface</a> to various logging packages. By using
             <em>Commons Logging</em>, <em>HttpClient</em> can be configured
-            for a variety of different logging behaviours.
+            for a variety of different logging behaviours. That means the user will have
+            to make a choice which logging framework to use. By default <em>Commons Logging</em>
+            supports the following logging frameworks:
+            <ul>
+              <li><a href="http://logging.apache.org/log4j/docs/index.html">Log4J</a></li>
+              <li><a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/package-summary.html">
+                  java.util.logging</a></li>
+              <li><a href="http://jakarta.apache.org/commons/logging/api/org/apache/commons/logging/impl/SimpleLog.html">
+                  SimpleLog</a> (internal to <em>Commons Logging</em>)</li>  
+            </ul>
+            By implementing some simple interfaces <em>Commons Logging</em> can be extended to support
+            basically any other custom logging framework.
+            <em>Commons Logging</em> tries to automatically discover the logging framework to use. If it
+            fails to select the expected one, you must configure <em>Commons Logging</em> by hand. Please
+            refer to the <em>Commons Logging</em> documentation for more information.
          </p><p>
             <em>HttpClient</em> performs two different kinds of logging: the standard
             context logging used within each class, and wire logging.            
@@ -52,8 +68,8 @@
       <section name="Configuration Examples">
           <p>
              <em>Commons Logging</em> can delegate to a variety of loggers for processing 
-             the actual output.  Below are configuration examples for <em>Commons Logging</em> 
-             and <em>Log4j</em>.
+             the actual output.  Below are configuration examples for <em>Commons Logging</em>, 
+             <em>Log4j</em> and <em>java.util.logging</em>.
           </p>
           <subsection name="Commons Logging Examples">
               <p>
@@ -91,7 +107,7 @@
                  System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true");<br />
                  System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "debug");<br />
                 </blockquote>
-             </p>          
+              </p>          
           </subsection>
           <subsection name="Log4j Examples">
             <p>
@@ -107,39 +123,57 @@
               <p>
                 <u>Enable header wire + context logging</u> - <b>Best for Debugging</b><br />
                 <blockquote>
-log4j.rootLogger=INFO, stdout<br />
-<br />
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br />
-log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n<br />
-<br />
-log4j.logger.httpclient.wire.header=DEBUG<br />
-log4j.logger.org.apache.commons.httpclient=DEBUG<br />
+                  log4j.rootLogger=INFO, stdout<br />
+                  <br />
+                  log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />
+                  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br />
+                  log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n<br />
+                  <br />
+                  log4j.logger.httpclient.wire.header=DEBUG<br />
+                  log4j.logger.org.apache.commons.httpclient=DEBUG<br />
                 </blockquote>
               </p>          
               <p>
                 <u>Enable full wire(header and content) + context logging</u><br />
                 <blockquote>
-log4j.rootLogger=INFO, stdout<br />
-<br />
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br />
-log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n<br />
-<br />
-log4j.logger.httpclient.wire=DEBUG<br />
-log4j.logger.org.apache.commons.httpclient=DEBUG<br />
+                  log4j.rootLogger=INFO, stdout<br />
+                  <br />
+                  log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />
+                  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br />
+                  log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n<br />
+                  <br />
+                  log4j.logger.httpclient.wire=DEBUG<br />
+                  log4j.logger.org.apache.commons.httpclient=DEBUG<br />
+                </blockquote>
+              </p>
+              <p>
+                <u>Log wire to file + context logging</u><br />
+                <blockquote>
+                  log4j.rootLogger=INFO<br />
+                  <br />
+                  log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />
+                  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br />
+                  log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n<br />
+                  <br />
+                  log4j.appender.F=org.apache.log4j.FileAppender<br />
+                  log4j.appender.F.File=wire.log<br />
+                  log4j.appender.F.layout=org.apache.log4j.PatternLayout<br />
+                  log4j.appender.F.layout.ConversionPattern =%5p [%c] %m%n<br />
+                  <br />
+                  log4j.logger.httpclient.wire=DEBUG, F<br />
+                  log4j.logger.org.apache.commons.httpclient=DEBUG, stdout<br />
                 </blockquote>
               </p>
               <p>
                 <u>Enable just context logging</u><br />
                 <blockquote>
-log4j.rootLogger=INFO, stdout<br />
-<br />
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br />
-log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n<br />
-<br />
-log4j.logger.org.apache.commons.httpclient=DEBUG<br />
+                  log4j.rootLogger=INFO, stdout<br />
+                  <br />
+                  log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />
+                  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br />
+                  log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n<br />
+                  <br />
+                  log4j.logger.org.apache.commons.httpclient=DEBUG<br />
                 </blockquote>
              </p>          
              <p>Note that the default configuration for Log4J is very
@@ -148,6 +182,78 @@
              best reference for how to configure Log4J.  It is available at <a
              href="http://logging.apache.org/log4j/docs/manual.html">http://logging.apache.org/log4j/docs/manual.html</a>
              </p>
+          </subsection>
+          <subsection name="java.util.logging Examples">
+            <p>
+              Since JDK 1.4 there has been a package 
+              <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/package-summary.html">
+              java.util.logging</a> that provides a
+              logging framework similar to <em>Log4J</em>. By default it reads a config file from
+              <code>$JAVA_HOME/jre/lib/logging.properties</code> which looks like this
+              (comments stripped):
+              <blockquote>
+                handlers=java.util.logging.ConsoleHandler<br/>
+                .level=INFO<br/>
+                java.util.logging.FileHandler.pattern = %h/java%u.log<br/>
+                java.util.logging.FileHandler.limit = 50000<br/>
+                java.util.logging.FileHandler.count = 1<br/>
+                java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter<br/>
+                java.util.logging.ConsoleHandler.level = INFO<br/>
+                java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter<br/>
+                com.xyz.foo.level = SEVERE<br/>         
+              </blockquote>
+              To customize logging a custom <code>logging.properties</code> file should be created
+              in the project directory. The location of this file must be passed to the JVM as a
+              system property. This can be done on the command line like so:
+              <blockquote>
+                $JAVA_HOME/java -Djava.util.logging.config.file=$HOME/myapp/logging.properties
+                -classpath $HOME/myapp/target/classes com.myapp.Main
+              </blockquote>
+              Alternatively
+              <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/LogManager.html#readConfiguration(java.io.InputStream)">
+              LogManager#readConfiguration(InputStream)</a> can be used to pass it the desired
+              configuration.
+            </p>
+            <p>
+              <u>Enable header wire + context logging</u> - <b>Best for Debugging</b><br />
+              <blockquote>
+              .level=INFO<br/>
+              <br />
+              handlers=java.util.logging.ConsoleHandler<br/>
+              java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter<br/>
+              <br />
+              httpclient.wire.header.level=FINEST<br />
+              org.apache.commons.httpclient.level=FINEST<br />
+              </blockquote>
+            </p>          
+            <p>
+              <u>Enable full wire(header and content) + context logging</u><br />
+              <blockquote>
+              .level=INFO<br/>
+              <br />
+              handlers=java.util.logging.ConsoleHandler<br/>
+              java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter<br/>
+              <br />
+              httpclient.wire.level=FINEST<br />
+              org.apache.commons.httpclient.level=FINEST<br />
+              </blockquote>
+            </p>
+            <p>
+              <u>Enable just context logging</u><br />
+              <blockquote>
+              .level=INFO<br/>
+              <br />
+              handlers=java.util.logging.ConsoleHandler<br/>
+              java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter<br/>
+              <br />
+              org.apache.commons.httpclient.level=FINEST<br />
+              </blockquote>
+           </p>      
+           <p>
+             More detailed information is available from the
+             <a href="http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.html">
+             Java Logging documentation</a>.
+           </p>    
           </subsection>
       </section>
    </body>



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org