У меня была такая же проблема.Мой обходной путь - изменить файл dispatch.py, поставляемый с ZSI.
Я создал функцию ведения журнала (logmessage) для моего приложения, которая будет хранить сообщения SOAP в базе данных, а затем добавил эту функцию, где это необходимо.Однако я не помню версию ZSI, которую я использовал.Вы должны быть в состоянии найти эти функции довольно легко, хотя в коде.Я имею приблизительное число L, так как я сделал другие изменения
в файле Dispatch.py в вашем каталоге пакетов сайта
L156 - протоколы SOAP-ответов
def _Dispatch(tons-of-args, **kw):
#several lines of code edited here#
#several lines of code edited here#
#several lines of code edited here#
sw = SoapWriter(nsdict=nsdict)
sw.serialize(result, tc)
logmessage( str(sw), 1, kw['request'].get_remote_host() ) #LOGGING HERE
L168 - журналыОшибки SOAP
def _ModPythonSendFault(f, **kw):
logmessage( str(f.AsSOAP()), 1, kw['request'].get_remote_host() ) #LOGGING ADDED HERE
_ModPythonSendXML(f.AsSOAP(), 500, **kw)
L277 - протоколирование запросов
def AsHandler(request=None, modules=None, **kw):
'''Dispatch from within ModPython.'''
a = request.read(-1)
logmessage( a, 0, request.get_remote_host() ) #LOGGING ADDED HERE
ps = ParsedSoap(a)
kw['request'] = request
_Dispatch(ps, modules, _ModPythonSendXML, _ModPythonSendFault, **kw)