Here is the solution. Incidentally, the client is Cold Fusion. import re import logging import logging.config import os import SimpleXMLRPCServer
logging.config.fileConfig("logging.ini") ######################################################################## class LoggingXMLRPCRequestHandler(SimpleXMLRPCServer.CGIXMLRPCRequestHandler): def __dereference(self, request_text): entityRe = re.compile("((?P<er>&#x)(?P<code>..)(?P<semi>;))") for m in re.finditer(entityRe, request_text): hexref = int(m.group(3),16) charref = chr(hexref) request_text = request_text.replace(m.group(1), charref) return request_text #------------------------------------------------------------------- def handle_xmlrpc(self, request_text): logger = logging.getLogger() #logger.debug("************************************") #logger.debug(request_text) try: #logger.debug("-------------------------------------") request_text = self.__dereference(request_text) #logger.debug(request_text) request_text = request_text.decode("latin-1").encode('utf-8') #logger.debug("************************************") except Exception, e: logger.error(request_text) logger.error("had a problem dereferencing") logger.error(e) SimpleXMLRPCServer.CGIXMLRPCRequestHandler.handle_xmlrpc(self, request_text) ######################################################################## class Foo: def settings(self): return os.environ def echo(self, something): logger = logging.getLogger() logger.debug(something) return something def greeting(self, name): return "hello, " + name # these are used to run as a CGI handler = LoggingXMLRPCRequestHandler() handler.register_instance(Foo()) handler.handle_request() -- http://mail.python.org/mailman/listinfo/python-list