Author: jochen
Date: Tue Aug  5 07:28:44 2008
New Revision: 682723

URL: http://svn.apache.org/viewvc?rev=682723&view=rev
Log:
PR: XMLRPC-156
Added the XmlRpcErrorLogger, which allows to customize the error logging.

Added:
    
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcErrorLogger.java
Modified:
    
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcStreamServer.java
    
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/WebServer.java
    
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/XmlRpcServlet.java

Added: 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcErrorLogger.java
URL: 
http://svn.apache.org/viewvc/webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcErrorLogger.java?rev=682723&view=auto
==============================================================================
--- 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcErrorLogger.java
 (added)
+++ 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcErrorLogger.java
 Tue Aug  5 07:28:44 2008
@@ -0,0 +1,27 @@
+package org.apache.xmlrpc.server;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+
+/**
+ * Instances of this class can be used to customize the servers
+ * error logging.
+ */
+public class XmlRpcErrorLogger {
+    private static final Log log = LogFactory.getLog(XmlRpcErrorLogger.class);
+
+    /**
+     * Called to log the given error.
+     */
+    public void log(String pMessage, Throwable pThrowable) {
+        log.error(pMessage, pThrowable);
+    }
+
+    /**
+     * Called to log the given error message.
+     */
+    public void log(String pMessage) {
+        log.error(pMessage);
+    }
+}

Modified: 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcStreamServer.java
URL: 
http://svn.apache.org/viewvc/webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcStreamServer.java?rev=682723&r1=682722&r2=682723&view=diff
==============================================================================
--- 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcStreamServer.java
 (original)
+++ 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/server/XmlRpcStreamServer.java
 Tue Aug  5 07:28:44 2008
@@ -50,7 +50,9 @@
                implements XmlRpcStreamRequestProcessor {
        private static final Log log = 
LogFactory.getLog(XmlRpcStreamServer.class);
        private XmlWriterFactory writerFactory = new DefaultXMLWriterFactory();
-
+       private static final XmlRpcErrorLogger theErrorLogger = new 
XmlRpcErrorLogger();
+       private XmlRpcErrorLogger errorLogger = theErrorLogger;
+       
        protected XmlRpcRequest getRequest(final XmlRpcStreamRequestConfig 
pConfig,
                                                                           
InputStream pStream) throws XmlRpcException {
                final XmlRpcRequestParser parser = new 
XmlRpcRequestParser(pConfig, getTypeFactory());
@@ -194,7 +196,7 @@
                                error = null;
                                log.debug("execute: Request performed 
successfully");
                        } catch (Throwable t) {
-                               log.error("execute: Error while performing 
request", t);
+                               logError(t);
                                result = null;
                                error = t;
                        } finally {
@@ -242,4 +244,23 @@
                }
                log.debug("execute: <-");
        }
+
+    protected void logError(Throwable t) {
+        final String msg = t.getMessage() == null ? t.getClass().getName() : 
t.getMessage();
+        errorLogger.log(msg, t);
+    }
+
+    /**
+     * Returns the error logger.
+     */
+    public XmlRpcErrorLogger getErrorLogger() {
+        return errorLogger;
+    }
+
+    /**
+     * Sets the error logger.
+     */
+    public void setErrorLogger(XmlRpcErrorLogger pErrorLogger) {
+        errorLogger = pErrorLogger;
+    }
 }

Modified: 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/WebServer.java
URL: 
http://svn.apache.org/viewvc/webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/WebServer.java?rev=682723&r1=682722&r2=682723&view=diff
==============================================================================
--- 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/WebServer.java
 (original)
+++ 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/WebServer.java
 Tue Aug  5 07:28:44 2008
@@ -388,14 +388,15 @@
         * @param pError The error being logged.
         */
        public void log(Throwable pError) {
-               log.error(pError.getMessage(), pError);
+           final String msg = pError.getMessage() == null ? 
pError.getClass().getName() : pError.getMessage();
+           server.getErrorLogger().log(msg, pError);
        }
 
        /** Logs a message.
         * @param pMessage The being logged.
         */
-       public synchronized void log(String pMessage) {
-               log.error(pMessage);
+       public void log(String pMessage) {
+        server.getErrorLogger().log(pMessage);
        }
 
        /** Returns the [EMAIL PROTECTED] 
org.apache.xmlrpc.server.XmlRpcServer}.

Modified: 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/XmlRpcServlet.java
URL: 
http://svn.apache.org/viewvc/webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/XmlRpcServlet.java?rev=682723&r1=682722&r2=682723&view=diff
==============================================================================
--- 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/XmlRpcServlet.java
 (original)
+++ 
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/XmlRpcServlet.java
 Tue Aug  5 07:28:44 2008
@@ -192,7 +192,7 @@
        }
 
     public void log(String pMessage, Throwable pThrowable) {
-        log.error(pMessage, pThrowable);
+        server.getErrorLogger().log(pMessage, pThrowable);
     }
 
     public void log(String pMessage) {


Reply via email to