Anything ever come of Ed's patch?

"Tellman, Ed" <[EMAIL PROTECTED]> writes:

> The attached patch modifies the logging scheme to use the jakarta commons
> logging package.
> 
> I was originally planning to cache the logger once for each class or once
> for each instance.  Then I realized that this might make dynamically
> changing the logging level, etc. at run time difficult, since copies of old
> loggers might continue to hang around.  Anyway, I opted for the following
> scheme:
>       -- If a method is definitely going to use a logger, get the logger
> from the factory at the beginning of the method
>       -- Otherwise, get the logger the first time it is used in a method.
> 
> The logging factory caches loggers anyway, so getting a logger from the
> factory, rather than caching it locally, shouldn't be too expensive, I
> think, although I didn't do any measurements.
> 
> I was going to make XmlRpc.setDebug() continue to work, by making it
> configure the logging package to always print on the standard error stream.
> However, I wasn't quite able to figure out how to make this happen.  I'll
> investigate further.  If someone else has thoughts on how to do this, please
> feel free to modify setDebug() accordingly.
> 
> The logging-commons.jar file will need to be added to the lib directory.
> The patch adds it to build.xml.
> 
> I modified things that were printing exceptions on System.err to instead use
> log.error(), except when they were in a main() method and printed a usage
> message.
> 
> I tested it with log4j, and it seems to work fine.  I didn't try any of the
> other logging options.
> 
> Please let me know if there are any problems or suggestions.
> 
> Thanks,
> --Ed Tellman
> [EMAIL PROTECTED]
> 
> 
> --------------------
> This message (including any attachments) may contain confidential
> information intended for a specific individual and purpose. If you are not
> the intended recipient, delete this message. If you are not the intended
> recipient, disclosing, copying, distributing, or taking any action based on
> this message is strictly prohibited.
>   
> 
> 
> Index: build.properties
> ===================================================================
> RCS file: /home/cvspublic/xml-rpc/build.properties,v
> retrieving revision 1.9
> diff -u -r1.9 build.properties
> --- build.properties  15 Aug 2002 16:30:04 -0000      1.9
> +++ build.properties  9 Dec 2002 15:49:09 -0000
> @@ -35,3 +35,5 @@
>  jcert.jar = ${lib.repo}/jcert.jar
>  servlet.jar = ${lib.repo}/servlet.jar
>  junit.jar = ${lib.repo}/junit-3.7.jar
> +commons-logging.jar = ${lib.repo}/commons-logging.jar
> +
> Index: build.xml
> ===================================================================
> RCS file: /home/cvspublic/xml-rpc/build.xml,v
> retrieving revision 1.20
> diff -u -r1.20 build.xml
> --- build.xml 10 Oct 2002 00:33:24 -0000      1.20
> +++ build.xml 9 Dec 2002 15:49:09 -0000
> @@ -18,6 +18,7 @@
>      <pathelement location="${jcert.jar}"/>
>      <pathelement location="${servlet.jar}"/>
>      <pathelement location="${junit.jar}"/>
> +    <pathelement location="${commons-logging.jar}"/>
>    </path>
>  
>    <!-- ================================================================== -->
> @@ -32,6 +33,7 @@
>      <echo message="jcert.jar = ${jcert.jar}"/>
>      <echo message="servlet.jar = ${servlet.jar}"/>
>      <echo message="junit.jar = ${junit.jar}"/>
> +    <echo message="commons-logging.jar = ${commons-logging.jar}"/>
>    </target>
>  
>    <!-- ================================================================== -->
> Index: examples/echo/AsyncClient.java
> ===================================================================
> RCS file: /home/cvspublic/xml-rpc/examples/echo/AsyncClient.java,v
> retrieving revision 1.1
> diff -u -r1.1 AsyncClient.java
> --- examples/echo/AsyncClient.java    8 Nov 2001 18:21:31 -0000       1.1
> +++ examples/echo/AsyncClient.java    9 Dec 2002 15:49:10 -0000
> @@ -54,6 +54,7 @@
>   */
>  
>  
> +import org.apache.commons.logging.LogFactory;
>  import org.apache.xmlrpc.*;
>  import java.util.Vector;
>  import java.net.URL;
> @@ -115,7 +116,7 @@
>       * something went wrong during XML-RPC call.
>       */
>      public void handleError (Exception exception, URL url, String method) {
> -     System.err.println ("Error: "+exception);
> +        LogFactory.getLog(AsyncClient.class).error("Error: " + exception);
>      }
>  
>  }
> Index: src/java/org/apache/xmlrpc/Invoker.java
> ===================================================================
> RCS file: /home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/Invoker.java,v
> retrieving revision 1.1
> diff -u -r1.1 Invoker.java
> --- src/java/org/apache/xmlrpc/Invoker.java   27 Aug 2002 19:20:41 -0000      1.1
> +++ src/java/org/apache/xmlrpc/Invoker.java   9 Dec 2002 15:49:09 -0000
> @@ -59,6 +59,9 @@
>  import java.lang.reflect.Method;
>  import java.util.Vector;
>  
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +
>  /**
>   * Introspects handlers using Java Reflection to call methods matching
>   * a XML-RPC call.
> @@ -77,10 +80,8 @@
>          invokeTarget = target;
>          targetClass = (invokeTarget instanceof Class) ? (Class) invokeTarget :
>                  invokeTarget.getClass();
> -        if (XmlRpc.debug)
> -        {
> -            System.out.println("Target object is " + targetClass);
> -        }
> +        LogFactory.getLog(Invoker.class).debug(
> +                "Target object is " + targetClass);
>      }
>  
>      /**
> @@ -88,6 +89,8 @@
>       */
>      public Object execute(String methodName, Vector params) throws Exception
>      {
> +        Log log = LogFactory.getLog(Invoker.class);
> +        
>          // Array mit Classtype bilden, ObjectAry mit Values bilden
>          Class[] argClasses = null;
>          Object[] argValues = null;
> @@ -128,13 +131,14 @@
>              methodName = methodName.substring(dot + 1);
>          }
>  
> -        if (XmlRpc.debug)
> +        
> +        if (log.isDebugEnabled())
>          {
> -            System.out.println("Searching for method: " + methodName +
> -                               " in class " + targetClass.getName());
> +            log.debug("Searching for method: " + methodName +
> +                    " in class " + targetClass.getName());
>              for (int i = 0; i < argClasses.length; i++)
>              {
> -                System.out.println("Parameter " + i + ": " + argValues[i]
> +                log.debug("Parameter " + i + ": " + argValues[i]
>                          + " (" + argClasses[i] + ')');
>              }
>          }
> @@ -177,10 +181,8 @@
>          }
>          catch(InvocationTargetException it_e)
>          {
> -            if (XmlRpc.debug)
> -            {
> -                it_e.getTargetException().printStackTrace();
> -            }
> +            log.error(it_e.getTargetException().getStackTrace());
> +
>              // check whether the thrown exception is XmlRpcException
>              Throwable t = it_e.getTargetException();
>              if (t instanceof XmlRpcException)
> Index: src/java/org/apache/xmlrpc/LiteXmlRpcTransport.java
> ===================================================================
> RCS file: 
>/home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/LiteXmlRpcTransport.java,v
> retrieving revision 1.1
> diff -u -r1.1 LiteXmlRpcTransport.java
> --- src/java/org/apache/xmlrpc/LiteXmlRpcTransport.java       5 Dec 2002 08:49:24 
>-0000       1.1
> +++ src/java/org/apache/xmlrpc/LiteXmlRpcTransport.java       9 Dec 2002 15:49:09 
>-0000
> @@ -66,6 +66,9 @@
>  import java.util.Vector;
>  import java.util.StringTokenizer;
>  
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +
>  /**
>   * Interface from XML-RPC to a 'lite' HTTP implementation.  This class will use
>   * the XmlRpcClientLite.auth member for the HTTP Basic authentication string.
> @@ -161,10 +164,7 @@
>          {
>              // same as above, but exception has to be converted to
>              // IOException.
> -            if (XmlRpc.debug)
> -            {
> -                x.printStackTrace ();
> -            }
> +            LogFactory.getLog(LiteXmlRpcTransport.class).error(x.getStackTrace());
>  
>              String msg = x.getMessage ();
>              if (msg == null || msg.length () == 0)
> @@ -212,6 +212,8 @@
>       */
>      public InputStream sendRequest(byte[] request) throws IOException
>      {
> +        Log log = LogFactory.getLog(LiteXmlRpcTransport.class);
> +        
>          output.write(("POST " + uri + " HTTP/1.0\r\n").getBytes());
>          output.write(("User-Agent: " + XmlRpc.version + "\r\n").getBytes());
>          output.write(("Host: " + host + "\r\n").getBytes());
> @@ -233,10 +235,8 @@
>  
>          // start reading  server response headers
>          String line = readLine();
> -        if (XmlRpc.debug)
> -        {
> -            System.out.println(line);
> -        }
> +        log.debug(line);
> +
>          int contentLength = -1;
>          try
>          {
> @@ -258,7 +258,7 @@
>          }
>          catch (Exception x)
>          {
> -            // x.printStackTrace ();
> +            log.error(x.getStackTrace());
>              throw new IOException("Server returned invalid Response.");
>          }
>          do
> @@ -266,10 +266,7 @@
>              line = readLine ();
>              if (line != null)
>              {
> -                if (XmlRpc.debug)
> -                {
> -                    System.out.println(line);
> -                }
> +                log.debug(line);
>                  line = line.toLowerCase();
>                  if (line.startsWith("content-length:"))
>                  {
> Index: src/java/org/apache/xmlrpc/WebServer.java
> ===================================================================
> RCS file: /home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/WebServer.java,v
> retrieving revision 1.22
> diff -u -r1.22 WebServer.java
> --- src/java/org/apache/xmlrpc/WebServer.java 3 Dec 2002 17:22:26 -0000       1.22
> +++ src/java/org/apache/xmlrpc/WebServer.java 9 Dec 2002 15:49:09 -0000
> @@ -70,6 +70,9 @@
>  import java.util.StringTokenizer;
>  import java.util.Vector;
>  
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +
>  /**
>   * A minimal web server that exclusively handles XML-RPC requests.
>   *
> @@ -251,6 +254,8 @@
>      private synchronized void setupServerSocket(int backlog)
>              throws Exception
>      {
> +        Log log = LogFactory.getLog(WebServer.class);
> +        
>          // Since we can't reliably set SO_REUSEADDR until JDK 1.4 is
>          // the standard, try to (re-)open the server socket several
>          // times.  Some OSes (Linux and Solaris, for example), hold on
> @@ -275,7 +280,7 @@
>              }
>          }
>  
> -        if (XmlRpc.debug)
> +        if (log.isDebugEnabled())
>          {
>              StringBuffer msg = new StringBuffer();
>              msg.append("Opened XML-RPC server socket for ");
> @@ -285,7 +290,7 @@
>              {
>                  msg.append(" after ").append(attempt).append(" tries");
>              }
> -            System.out.println(msg.toString());
> +            log.debug(msg.toString());
>          }
>  
>          // A socket timeout must be set.
> @@ -465,6 +470,7 @@
>       */
>      public void run()
>      {
> +        Log log = LogFactory.getLog(WebServer.class);        
>          try
>          {
>              setupServerSocket(50);
> @@ -472,7 +478,7 @@
>          catch (Exception e)
>          {
>              listener = null;
> -            e.printStackTrace();
> +            log.error(e.getStackTrace());
>              throw new RuntimeException(e.getMessage());
>          }
>  
> @@ -489,7 +495,7 @@
>                      }
>                      catch (SocketException socketOptEx)
>                      {
> -                        System.err.println(socketOptEx);
> +                        log.error(socketOptEx);
>                      }
>  
>                      if (allowConnection(socket))
> @@ -509,29 +515,23 @@
>                  }
>                  catch (Exception ex)
>                  {
> -                    System.err.println("Exception in XML-RPC listener loop ("
> +                    log.error("Exception in XML-RPC listener loop ("
>                              + ex + ").");
> -                    if (XmlRpc.debug)
> -                    {
> -                        ex.printStackTrace();
> -                    }
> +                    log.error(ex.getStackTrace());
>                  }
>                  catch (Error err)
>                  {
> -                    System.err.println("Error in XML-RPC listener loop ("
> +                    log.error("Error in XML-RPC listener loop ("
>                              + err + ").");
> -                    err.printStackTrace();
> +                    log.error(err.getStackTrace());                            
>                  }
>              }
>          }
>          catch (Exception exception)
>          {
> -            System.err.println("Error accepting XML-RPC connections ("
> +            log.error("Error accepting XML-RPC connections ("
>                      + exception + ").");
> -            if (XmlRpc.debug)
> -            {
> -                exception.printStackTrace();
> -            }
> +            log.error(exception.getStackTrace());
>          }
>          finally
>          {
> @@ -540,15 +540,12 @@
>                  try
>                  {
>                      serverSocket.close();
> -                    if (XmlRpc.debug)
> -                    {
> -                        System.out.print("Closed XML-RPC server socket");
> -                    }
> +                    log.debug("Closed XML-RPC server socket");
>                      serverSocket = null;
>                  }
>                  catch (IOException e)
>                  {
> -                    e.printStackTrace();
> +                    log.error(e.getStackTrace());
>                  }
>              }
>  
> @@ -563,8 +560,8 @@
>                  }
>                  catch (Exception e)
>                  {
> -                    System.err.println(e);
> -                    e.printStackTrace();
> +                    log.error(e);
> +                    log.error(e.getStackTrace());
>                  }
>              }
>          }
> @@ -708,6 +705,7 @@
>           */
>          public void run()
>          {
> +            Log log = LogFactory.getLog(WebServer.class);
>              try
>              {
>                  boolean keepAlive = false;
> @@ -723,10 +721,8 @@
>                      {
>                          line = readLine();
>                      }
> -                    if (XmlRpc.debug)
> -                    {
> -                        System.out.println(line);
> -                    }
> +                    log.debug(line);
> +
>                      int contentLength = -1;
>  
>                      // tokenize first line of HTTP request
> @@ -741,10 +737,8 @@
>                          line = readLine();
>                          if (line != null)
>                          {
> -                            if (XmlRpc.debug)
> -                            {
> -                                System.out.println(line);
> -                            }
> +                            log.debug(line);
> +
>                              String lineLower = line.toLowerCase();
>                              if (lineLower.startsWith("content-length:"))
>                              {
> @@ -790,11 +784,7 @@
>              }
>              catch (Exception exception)
>              {
> -                System.err.println(exception);
> -                if (XmlRpc.debug)
> -                {
> -                    exception.printStackTrace();
> -                }
> +                log.error(exception.getStackTrace());
>              }
>              finally
>              {
> Index: src/java/org/apache/xmlrpc/XmlRpc.java
> ===================================================================
> RCS file: /home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/XmlRpc.java,v
> retrieving revision 1.35
> diff -u -r1.35 XmlRpc.java
> --- src/java/org/apache/xmlrpc/XmlRpc.java    21 Nov 2002 01:28:16 -0000      1.35
> +++ src/java/org/apache/xmlrpc/XmlRpc.java    9 Dec 2002 15:49:09 -0000
> @@ -59,6 +59,12 @@
>  import java.util.Hashtable;
>  import java.util.Stack;
>  import java.util.Vector;
> +import java.util.logging.Logger;
> +
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +import org.apache.commons.logging.LogSource;
> +import org.apache.commons.logging.impl.SimpleLog;
>  import org.xml.sax.AttributeList;
>  import org.xml.sax.HandlerBase;
>  import org.xml.sax.InputSource;
> @@ -161,11 +167,6 @@
>      static boolean keepalive = false;
>  
>      /**
> -     * Whether to log debugging output.
> -     */
> -    public static boolean debug = false;
> -
> -    /**
>       * The list of valid XML elements used for RPC.
>       */
>      final static String types[] =
> @@ -248,9 +249,10 @@
>          }
>          catch (Exception e)
>          {
> -            System.err.println("Unable to create configured TypeFactory '" +
> -                               typeFactory.getName() + "': " + e.getMessage() +
> -                               ": Using default");
> +            LogFactory.getLog(XmlRpc.class).error(
> +                    "Unable to create configured TypeFactory '" +
> +                     typeFactory.getName() + "': " + e.getMessage() +
> +                     ": Using default");
>              // Call self recursively to acquire default.
>              return createTypeFactory(null);
>          }
> @@ -334,11 +336,17 @@
>      }
>  
>      /**
> -     * Switch debugging output on/off.
> -     */
> +     * Does nothing.  Configure the log system with the jakarta
> +     * commons logging package.<p>
> +     * 
> +     * See http://jakarta.apache.org/commons/logging.html for more information.
> +     * 
> +     * @param val ignored
> +     * 
> +     * @deprecated
> +     **/
>      public static void setDebug(boolean val)
>      {
> -        debug = val;
>      }
>  
>      /**
> @@ -363,6 +371,8 @@
>       */
>      synchronized void parse(InputStream is) throws Exception
>      {
> +        Log log = LogFactory.getLog(XmlRpc.class);
> +        
>          // reset values (XmlRpc objects are reusable)
>          errorLevel = NONE;
>          errorMsg = null;
> @@ -410,10 +420,8 @@
>          parser.setDocumentHandler(this);
>          parser.setErrorHandler(this);
>  
> -        if (debug)
> -        {
> -            System.out.println("Beginning parsing XML input stream");
> -        }
> +        log.debug("Beginning parsing XML input stream");
> +
>          try
>          {
>              parser.parse(new InputSource (is));
> @@ -428,11 +436,9 @@
>                  cdata = null;
>              }
>          }
> -        if (debug)
> -        {
> -            System.out.println ("Spent " + (System.currentTimeMillis() - now)
> -                    + " millis parsing");
> -        }
> +
> +        log.debug("Spent " + (System.currentTimeMillis() - now)
> +                 + " millis parsing");
>      }
>  
>      /**
> @@ -463,11 +469,7 @@
>       */
>      public void endElement(String name) throws SAXException
>      {
> -
> -        if (debug)
> -        {
> -            System.out.println("endElement: " + name);
> -        }
> +        LogFactory.getLog(XmlRpc.class).debug("endElement: " + name);
>  
>          // finalize character data, if appropriate
>          if (currentValue != null && readCdata)
> @@ -526,10 +528,7 @@
>      public void startElement(String name, AttributeList atts)
>              throws SAXException
>      {
> -        if (debug)
> -        {
> -            System.out.println("startElement: " + name);
> -        }
> +        LogFactory.getLog(XmlRpc.class).debug("startElement: " + name);
>  
>          if ("value".equals(name))
>          {
> @@ -603,7 +602,7 @@
>       */
>      public void error(SAXParseException e) throws SAXException
>      {
> -        System.err.println("Error parsing XML: " + e);
> +        LogFactory.getLog(XmlRpc.class).error("Error parsing XML: " + e);
>          errorLevel = RECOVERABLE;
>          errorMsg = e.toString();
>      }
> @@ -615,7 +614,7 @@
>       */
>      public void fatalError(SAXParseException e) throws SAXException
>      {
> -        System.err.println("Fatal error parsing XML: " + e);
> +        LogFactory.getLog(XmlRpc.class).error("Fatal error parsing XML: " + e);
>          errorLevel = FATAL;
>          errorMsg = e.toString();
>      }
> Index: src/java/org/apache/xmlrpc/XmlRpcClient.java
> ===================================================================
> RCS file: /home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/XmlRpcClient.java,v
> retrieving revision 1.15
> diff -u -r1.15 XmlRpcClient.java
> --- src/java/org/apache/xmlrpc/XmlRpcClient.java      5 Dec 2002 08:49:24 -0000      
> 1.15
> +++ src/java/org/apache/xmlrpc/XmlRpcClient.java      9 Dec 2002 15:49:09 -0000
> @@ -66,6 +66,9 @@
>  import java.util.Hashtable;
>  import java.util.Stack;
>  import java.util.Vector;
> +
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
>  import org.xml.sax.AttributeList;
>  import org.xml.sax.SAXException;
>  
> @@ -109,10 +112,8 @@
>      public XmlRpcClient(URL url)
>      {
>          this.url = url;
> -        if (XmlRpc.debug)
> -        {
> -            System.out.println("Created client to url space " + url);
> -        }
> +        LogFactory.getLog(XmlRpcClient.class).debug(
> +                "Created client to url space " + url);
>      }
>  
>      /**
> Index: src/java/org/apache/xmlrpc/XmlRpcClientWorker.java
> ===================================================================
> RCS file: 
>/home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/XmlRpcClientWorker.java,v
> retrieving revision 1.1
> diff -u -r1.1 XmlRpcClientWorker.java
> --- src/java/org/apache/xmlrpc/XmlRpcClientWorker.java        5 Dec 2002 08:49:24 
>-0000       1.1
> +++ src/java/org/apache/xmlrpc/XmlRpcClientWorker.java        9 Dec 2002 15:49:09 
>-0000
> @@ -58,6 +58,9 @@
>  import java.io.InputStream;
>  import java.io.IOException;
>  
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +
>  /**
>   * Tie together the XmlRequestProcessor and XmlResponseProcessor to handle
>   * a request serially in a single thread.
> @@ -88,9 +91,10 @@
>      throws XmlRpcException, XmlRpcClientException, IOException
>      {
>          long now = 0;
> -     Object response;
> +         Object response;
> +        Log log = LogFactory.getLog(XmlRpcClientWorker.class);
>  
> -        if (XmlRpc.debug)
> +        if (log.isDebugEnabled());
>          {
>              now = System.currentTimeMillis();
>          }
> @@ -123,19 +127,13 @@
>          }
>          catch (Exception x)
>          {
> -            if (XmlRpc.debug)
> -            {
> -                x.printStackTrace();
> -            }
> +            log.error(x.getStackTrace());
>              throw new XmlRpcClientException("Unexpected exception in client 
>processing.", x);
>          }
>          finally
>          {
> -            if (XmlRpc.debug)
> -            {
> -                System.out.println("Spent " + (System.currentTimeMillis() - now)
> -                                   + " millis in request/process/response");
> -            }
> +            log.debug("Spent " + (System.currentTimeMillis() - now)
> +                     + " millis in request/process/response");
>          }
>      }
>  
> Index: src/java/org/apache/xmlrpc/XmlRpcRequestProcessor.java
> ===================================================================
> RCS file: 
>/home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/XmlRpcRequestProcessor.java,v
> retrieving revision 1.5
> diff -u -r1.5 XmlRpcRequestProcessor.java
> --- src/java/org/apache/xmlrpc/XmlRpcRequestProcessor.java    5 Dec 2002 08:49:24 
>-0000       1.5
> +++ src/java/org/apache/xmlrpc/XmlRpcRequestProcessor.java    9 Dec 2002 15:49:09 
>-0000
> @@ -58,6 +58,9 @@
>  import java.io.InputStream;
>  import java.util.Vector;
>  
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +
>  /**
>   * Process an InputStream and produce an XmlRpcServerRequest.  This class
>   * is NOT thread safe.
> @@ -90,12 +93,15 @@
>       */
>      public XmlRpcServerRequest decodeRequest(InputStream is)
>      {
> +        Log log = LogFactory.getLog(XmlRpcRequestProcessor.class);
>          long now = 0;
>  
> -        if (XmlRpc.debug)
> +        if (log.isDebugEnabled())
>          {
>              now = System.currentTimeMillis();
> +            log.debug("start decode at: " + now);
>          }
> +
>          try
>          {
>              try
> @@ -106,11 +112,10 @@
>              {
>                  throw new ParseFailed(e);
>              }
> -            if (XmlRpc.debug)
> -            {
> -                System.out.println("XML-RPC method name: " + methodName);
> -                System.out.println("Request parameters: " + requestParams);
> -            }
> +
> +            log.debug("XML-RPC method name: " + methodName);
> +            log.debug("Request parameters: " + requestParams);
> +
>              // check for errors from the XML parser
>              if (errorLevel > NONE)
>              {
> @@ -122,11 +127,8 @@
>          finally
>          {
>              requestParams.removeAllElements();
> -            if (XmlRpc.debug)
> -            {
> -                System.out.println("Spent " + (System.currentTimeMillis() - now)
> +            log.debug("Spent " + (System.currentTimeMillis() - now)
>                          + " millis decoding request");
> -            }
>          }
>      }
>  
> Index: src/java/org/apache/xmlrpc/XmlRpcResponseProcessor.java
> ===================================================================
> RCS file: 
>/home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/XmlRpcResponseProcessor.java,v
> retrieving revision 1.2
> diff -u -r1.2 XmlRpcResponseProcessor.java
> --- src/java/org/apache/xmlrpc/XmlRpcResponseProcessor.java   5 Dec 2002 08:49:24 
>-0000       1.2
> +++ src/java/org/apache/xmlrpc/XmlRpcResponseProcessor.java   9 Dec 2002 15:49:09 
>-0000
> @@ -60,6 +60,9 @@
>  import java.io.IOException;
>  import java.util.Hashtable;
>  
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +
>  /**
>   * Process an Object and produce byte array that represents the specified
>   * encoding of the output as an XML-RPC response. This is NOT thread safe.
> @@ -85,9 +88,13 @@
>          throws IOException, UnsupportedEncodingException, XmlRpcException
>      {
>          long now = 0;
> -        if (XmlRpc.debug)
> +        
> +        Log log = LogFactory.getLog(XmlRpcResponseProcessor.class);
> +        if (log.isDebugEnabled())
>          {
>              now = System.currentTimeMillis();
> +            log.debug("starting encoding response at: " + 
> +                    System.currentTimeMillis());            
>          }
>  
>          try
> @@ -100,11 +107,8 @@
>          }
>          finally
>          {
> -            if (XmlRpc.debug)
> -            {
> -                System.out.println("Spent " + (System.currentTimeMillis() - now)
> +            log.debug("Spent " + (System.currentTimeMillis() - now)
>                          + " millis encoding response");
> -            }
>          }
>      }
>  
> @@ -118,10 +122,9 @@
>       */
>      public byte[] encodeException(Exception x, String encoding)
>      {
> -        if (XmlRpc.debug)
> -        {
> -            x.printStackTrace();
> -        }
> +        Log log = LogFactory.getLog(XmlRpcResponseProcessor.class);
> +        log.debug(x.getStackTrace());
> +
>          // Ensure that if there is anything in the buffer, it
>          // is cleared before continuing with the writing of exceptions.
>          // It is possible that something is in the buffer
> @@ -136,14 +139,14 @@
>          }
>          catch (UnsupportedEncodingException encx)
>          {
> -            System.err.println("XmlRpcServer attempted to use "
> +            log.error("XmlRpcServer attempted to use "
>                      + "unsupported encoding: " + encx);
>              // NOTE: If we weren't already using the default
>              // encoding, we could try it here.
>          }
>          catch (IOException iox)
>          {
> -            System.err.println("XmlRpcServer experienced I/O error "
> +            log.error("XmlRpcServer experienced I/O error "
>                      + "writing error response: " + iox);
>          }
>  
> @@ -160,7 +163,7 @@
>          {
>              // Unlikely to occur, as we just sent a struct
>              // with an int and a string.
> -            System.err.println("Unable to send error response to "
> +            log.error("Unable to send error response to "
>                      + "client: " + e);
>          }
>  
> Index: src/java/org/apache/xmlrpc/XmlRpcServer.java
> ===================================================================
> RCS file: /home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/XmlRpcServer.java,v
> retrieving revision 1.35
> diff -u -r1.35 XmlRpcServer.java
> --- src/java/org/apache/xmlrpc/XmlRpcServer.java      21 Oct 2002 13:08:50 -0000     
> 1.35
> +++ src/java/org/apache/xmlrpc/XmlRpcServer.java      9 Dec 2002 15:49:10 -0000
> @@ -60,6 +60,8 @@
>  import java.util.EmptyStackException;
>  import java.util.Stack;
>  
> +import org.apache.commons.logging.LogFactory;
> +
>  /**
>   * A multithreaded, reusable XML-RPC server object. The name may be misleading
>   * because this does not open any server sockets. Instead it is fed by passing
> @@ -172,7 +174,8 @@
>                  nbrWorkers += 1;
>                  if (nbrWorkers >= maxThreads * .95)
>                  {
> -                    System.out.println("95% of XML-RPC server threads in use");
> +                    LogFactory.getLog(XmlRpcServer.class).warn(
> +                            "95% of XML-RPC server threads in use");
>                  }
>                  return createWorker();
>              }
> Index: src/java/org/apache/xmlrpc/XmlRpcWorker.java
> ===================================================================
> RCS file: /home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/XmlRpcWorker.java,v
> retrieving revision 1.5
> diff -u -r1.5 XmlRpcWorker.java
> --- src/java/org/apache/xmlrpc/XmlRpcWorker.java      5 Dec 2002 08:49:24 -0000      
> 1.5
> +++ src/java/org/apache/xmlrpc/XmlRpcWorker.java      9 Dec 2002 15:49:09 -0000
> @@ -58,6 +58,9 @@
>  import java.io.InputStream;
>  import java.io.IOException;
>  
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +
>  /**
>   * Tie together the XmlRequestProcessor and XmlResponseProcessor to handle
>   * a request serially in a single thread.
> @@ -101,10 +104,11 @@
>          throws Exception
>      {
>          long now = 0;
> +        Log log = LogFactory.getLog(XmlRpcWorker.class);
>  
>          try
>          {
> -            if (XmlRpc.debug)
> +            if (log.isDebugEnabled())
>              {
>                  now = System.currentTimeMillis();
>              }
> @@ -138,11 +142,8 @@
>          }
>          finally
>          {
> -            if (XmlRpc.debug)
> -            {
> -                 System.out.println("Spent " + (System.currentTimeMillis() - now)
> -                         + " millis processing request");
> -            }
> +            log.debug("Spent " + (System.currentTimeMillis() - now)
> +                     + " millis processing request");
>          }
>      }
>  
> @@ -170,9 +171,10 @@
>       */
>      public byte[] execute(InputStream is, XmlRpcContext context)
>      {
> +        Log log = LogFactory.getLog(XmlRpcWorker.class);
>          long now = 0;
> -
> -        if (XmlRpc.debug)
> +        
> +        if (log.isDebugEnabled())
>          {
>              now = System.currentTimeMillis();
>          }
> @@ -196,20 +198,14 @@
>          }
>          catch (Exception x)
>          {
> -            if (XmlRpc.debug)
> -            {
> -                x.printStackTrace();
> -            }
> +            log.error(x.getStackTrace());
>              return responseProcessor.encodeException
>                  (x, requestProcessor.getEncoding());
>          }
>          finally
>          {
> -            if (XmlRpc.debug)
> -            {
> -                System.out.println("Spent " + (System.currentTimeMillis() - now)
> -                                   + " millis in request/process/response");
> -            }
> +            log.debug("Spent " + (System.currentTimeMillis() - now)
> +                    + " millis in request/process/response");
>          }
>      }
>  
> Index: src/java/org/apache/xmlrpc/applet/JSXmlRpcApplet.java
> ===================================================================
> RCS file: 
>/home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/applet/JSXmlRpcApplet.java,v
> retrieving revision 1.3
> diff -u -r1.3 JSXmlRpcApplet.java
> --- src/java/org/apache/xmlrpc/applet/JSXmlRpcApplet.java     20 Mar 2002 15:11:03 
>-0000      1.3
> +++ src/java/org/apache/xmlrpc/applet/JSXmlRpcApplet.java     9 Dec 2002 15:49:10 
>-0000
> @@ -59,6 +59,8 @@
>  import java.util.Hashtable;
>  import java.util.Vector;
>  
> +import org.apache.commons.logging.LogFactory;
> +
>  
>  /**
>   * An applet that can be accessed via LiveConnect from JavaScript. It provides
> @@ -90,7 +92,8 @@
>          initClient();
>          arguments = new Vector();
>          loaded = Boolean.TRUE;
> -        System.out.println("JSXmlRpcApplet initialized");
> +        LogFactory.getLog(JSXmlRpcApplet.class).info(
> +                "JSXmlRpcApplet initialized");
>      }
>  
>      // add ints (primitve != object) to structs, vectors
> Index: src/java/org/apache/xmlrpc/applet/SimpleXmlRpcClient.java
> ===================================================================
> RCS file: 
>/home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/applet/SimpleXmlRpcClient.java,v
> retrieving revision 1.5
> diff -u -r1.5 SimpleXmlRpcClient.java
> --- src/java/org/apache/xmlrpc/applet/SimpleXmlRpcClient.java 7 Aug 2002 17:35:39 
>-0000       1.5
> +++ src/java/org/apache/xmlrpc/applet/SimpleXmlRpcClient.java 9 Dec 2002 15:49:10 
>-0000
> @@ -71,6 +71,9 @@
>  import java.util.Hashtable;
>  import java.util.Stack;
>  import java.util.Vector;
> +
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
>  import org.apache.xmlrpc.Base64;
>  import org.xml.sax.AttributeList;
>  import org.xml.sax.HandlerBase;
> @@ -163,8 +166,7 @@
>      static final int STRUCT = 6;
>      static final int ARRAY = 7;
>  
> -    // for debugging output
> -    public static boolean debug = false;
> +
>      final static String types[] = {"String", "Integer", "Boolean", "Double",
>              "Date", "Base64", "Struct", "Array"};
>  
> @@ -179,11 +181,17 @@
>      }
>  
>      /**
> -     * Switch debugging output on/off.
> -     */
> +     * Does nothing.  Configure the log system with the jakarta
> +     * commons logging package.<p>
> +     * 
> +     * See http://jakarta.apache.org/commons/logging.html for more information.
> +     * 
> +     * @param val ignored
> +     * 
> +     * @deprecated
> +     **/    
>      public static void setDebug(boolean val)
>      {
> -        debug = val;
>      }
>  
>      /**
> @@ -200,11 +208,8 @@
>  
>          parser.parse(new InputSource(is));
>  
> -        if (debug)
> -        {
> -            System.out.println("Spent " + (System.currentTimeMillis() - now)
> -                    + " parsing");
> -        }
> +        LogFactory.getLog(SimpleXmlRpcClient.class).debug(
> +                "Spent " + (System.currentTimeMillis() - now) + " parsing");
>      }
>  
>      /**
> @@ -298,6 +303,7 @@
>      public Object execute(String method, Vector arguments)
>              throws XmlRpcException, IOException
>      {
> +        Log log = LogFactory.getLog(SimpleXmlRpcClient.class);
>          fault = false;
>          long now = System.currentTimeMillis();
>          try
> @@ -320,11 +326,11 @@
>              out.flush();
>              InputStream in = con.getInputStream();
>              parse(in);
> -            System.out.println("result = " + result);
> +            log.debug("result = " + result);
>          }
>          catch (Exception x)
>          {
> -            x.printStackTrace();
> +            log.error(x.getStackTrace());
>              throw new IOException(x.getMessage());
>          }
>          if (fault)
> @@ -344,7 +350,7 @@
>              }
>              throw exception;
>          }
> -        System.out.println("Spent " + (System.currentTimeMillis() - now)
> +        log.debug("Spent " + (System.currentTimeMillis() - now)
>                  + " in request");
>          return result;
>      }
> @@ -400,10 +406,7 @@
>       */
>      public void endElement(String name) throws SAXException
>      {
> -        if (debug)
> -        {
> -            System.err.println("endElement: " + name);
> -        }
> +        LogFactory.getLog(SimpleXmlRpcClient.class).debug("endElement: " + name);
>  
>          // finalize character data, if appropriate
>          if (currentValue != null && readCdata)
> @@ -460,10 +463,7 @@
>      public void startElement (String name, AttributeList atts)
>              throws SAXException
>      {
> -        if (debug)
> -        {
> -            System.err.println("startElement: " + name);
> -        }
> +        LogFactory.getLog(SimpleXmlRpcClient.class).debug("startElement: " + name);
>  
>          if ("value".equals(name))
>          {
> @@ -538,7 +538,8 @@
>       */
>      public void error(SAXParseException e) throws SAXException
>      {
> -        System.err.println("Error parsing XML: " + e);
> +        LogFactory.getLog(SimpleXmlRpcClient.class).error(
> +                "Error parsing XML: " + e);
>          // errorLevel = RECOVERABLE;
>          // errorMsg = e.toString ();
>      }
> @@ -550,7 +551,8 @@
>       */
>      public void fatalError(SAXParseException e) throws SAXException
>      {
> -        System.err.println("Fatal error parsing XML: " + e);
> +        LogFactory.getLog(SimpleXmlRpcClient.class).error(
> +                "Fatal error parsing XML: " + e);
>          // errorLevel = FATAL;
>          // errorMsg = e.toString ();
>      }
> Index: src/java/org/apache/xmlrpc/applet/XmlRpcApplet.java
> ===================================================================
> RCS file: 
>/home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/applet/XmlRpcApplet.java,v
> retrieving revision 1.2
> diff -u -r1.2 XmlRpcApplet.java
> --- src/java/org/apache/xmlrpc/applet/XmlRpcApplet.java       20 Mar 2002 15:11:03 
>-0000      1.2
> +++ src/java/org/apache/xmlrpc/applet/XmlRpcApplet.java       9 Dec 2002 15:49:10 
>-0000
> @@ -61,6 +61,9 @@
>  import java.net.URL;
>  import java.util.Vector;
>  
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +
>  
>  /**
>   * An applet that provides basic XML-RPC client functionality.
> @@ -89,7 +92,8 @@
>              }
>              catch (NumberFormatException nfx)
>              {
> -                System.out.println("Error parsing port: " + nfx);
> +                LogFactory.getLog(XmlRpcApplet.class).error(
> +                        "Error parsing port: " + nfx);
>              }
>          }
>          initClient(port);
> @@ -119,16 +123,18 @@
>       */
>      public void initClient(int port, String uri)
>      {
> +        Log log = LogFactory.getLog(XmlRpcApplet.class);
> +        
>          String host = getCodeBase().getHost();
>          try
>          {
>              URL url = new URL("http://"; + host + ":" + port + uri);
> -            System.out.println("XML-RPC URL: " + url);
> +            log.info("XML-RPC URL: " + url);
>              client = new SimpleXmlRpcClient(url);
>          }
>          catch (MalformedURLException unlikely)
>          {
> -            System.out.println("Error constructing XML-RPC client for "
> +            log.error("Error constructing XML-RPC client for "
>                      + host + ":" + port + ": " + unlikely);
>          }
>      }
> Index: src/java/org/apache/xmlrpc/fesi/FesiRpcUtil.java
> ===================================================================
> RCS file: /home/cvspublic/xml-rpc/src/java/org/apache/xmlrpc/fesi/FesiRpcUtil.java,v
> retrieving revision 1.2
> diff -u -r1.2 FesiRpcUtil.java
> --- src/java/org/apache/xmlrpc/fesi/FesiRpcUtil.java  20 Mar 2002 15:11:04 -0000     
> 1.2
> +++ src/java/org/apache/xmlrpc/fesi/FesiRpcUtil.java  9 Dec 2002 15:49:10 -0000
> @@ -72,7 +72,11 @@
>  import java.util.Enumeration;
>  import java.util.Hashtable;
>  import java.util.Vector;
> +
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
>  import org.apache.xmlrpc.XmlRpc;
> +import org.apache.xmlrpc.XmlRpcWorker;
>  
>  /**
>   *
> @@ -137,10 +141,9 @@
>      // convert a JavaScript Object object to a generic Java.
>      public static Object convertE2J(ESValue what) throws EcmaScriptException
>      {
> -        if (XmlRpc.debug)
> -        {
> -            System.out.println("converting e-2-j: " + what.getClass());
> -        }
> +        Log log = LogFactory.getLog(FesiRpcUtil.class);
> +        log.debug("converting e-2-j: " + what.getClass());
> +
>          if (what instanceof ESNull)
>          {
>              return null;
> @@ -164,10 +167,7 @@
>              for (Enumeration e = o.getProperties(); e.hasMoreElements();)
>              {
>                  String next = (String) e.nextElement();
> -                if (XmlRpc.debug)
> -                {
> -                    System.out.println("converting object member " + next);
> -                }
> +                log.debug("converting object member " + next);
>                  Object nj = convertE2J(o.getProperty(next, next.hashCode()));
>                  if (nj != null)// can't put null as value in hashtable
>                  {
> Index: src/test/org/apache/xmlrpc/AsyncBenchmark.java
> ===================================================================
> RCS file: /home/cvspublic/xml-rpc/src/test/org/apache/xmlrpc/AsyncBenchmark.java,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 AsyncBenchmark.java
> --- src/test/org/apache/xmlrpc/AsyncBenchmark.java    20 Jul 2001 19:38:20 -0000     
> 1.1.1.1
> +++ src/test/org/apache/xmlrpc/AsyncBenchmark.java    9 Dec 2002 15:49:10 -0000
> @@ -59,6 +59,9 @@
>  import java.io.IOException;
>  import java.net.URL;
>  
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +
>  public class AsyncBenchmark 
>      implements Runnable
>  {
> @@ -152,8 +155,11 @@
>          public synchronized void handleError (Exception exception,
>                  URL url, String method)
>          {
> -            System.err.println (exception);
> -            exception.printStackTrace ();
> +            Log log = LogFactory.getLog(AsyncBenchmark.class);
> +            
> +            log.error(exception);
> +            log.error(exception.getStackTrace());
> +            
>              gErrors += 1;
>              if (gCalls + gErrors >= clients * loops)
>                  printStats ();
> Index: src/test/org/apache/xmlrpc/Benchmark.java
> ===================================================================
> RCS file: /home/cvspublic/xml-rpc/src/test/org/apache/xmlrpc/Benchmark.java,v
> retrieving revision 1.2
> diff -u -r1.2 Benchmark.java
> --- src/test/org/apache/xmlrpc/Benchmark.java 14 Nov 2001 15:12:01 -0000      1.2
> +++ src/test/org/apache/xmlrpc/Benchmark.java 9 Dec 2002 15:49:10 -0000
> @@ -58,6 +58,9 @@
>  import java.util.*;
>  import java.io.IOException;
>  
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +
>  public class Benchmark
>      implements Runnable
>  {
> @@ -95,6 +98,8 @@
>  
>      public void run ()
>      {
> +        Log log = LogFactory.getLog(Benchmark.class);
> +        
>          int errors = 0;
>          int calls = 0;
>          try
> @@ -133,16 +138,17 @@
>          }
>          catch (IOException x)
>          {
> -            System.err.println ("Exception in client: "+x);
> -            x.printStackTrace ();
> +            log.error("Exception in client: "+x);
> +            log.error(x.getStackTrace());
>          }
>          catch (XmlRpcException x)
>          {
> -            System.err.println ("Server reported error: "+x);
> +            log.error("Server reported error: "+x);
> +            log.error(x.getStackTrace());
>          }
>          catch (Exception other)
>          {
> -            System.err.println ("Exception in Benchmark client: "+other);
> +            log.error("Exception in Benchmark client: "+other);
>          }
>          int millis = (int)(System.currentTimeMillis () - start);
>          checkout (calls, errors, millis);

-- 

Daniel Rall <[EMAIL PROTECTED]>

Reply via email to