You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlrpc-auto@ws.apache.org by jo...@apache.org on 2008/08/05 16:28:45 UTC

svn commit: r682723 - in /webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc: server/XmlRpcErrorLogger.java server/XmlRpcStreamServer.java webserver/WebServer.java webserver/XmlRpcServlet.java

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 {@link 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) {