Я использую Django 1.9 для предоставления SOAP 1.1 API с Spyne версии 2.12.16
Мне нужно реализовать ведение журнала для каждого запроса XML и ответа XML на моей платформе.
Django urls.py is
url(r'^your_data/', DjangoView.as_view(
name="YourDataService",
services=[YourDataService],
tns='http://127.0.0.1:8000/',
in_protocol=Soap11(validator='lxml'),
out_protocol=Soap11()))
views.py:
from spyne.decorator import rpc
from spyne.model.primitive import String, AnyDict
from spyne.service import ServiceBase
class YourDataService(ServiceBase):
@rpc(String, String, String, _returns=AnyDict)
def call_this_method(self, a, b, c):
return {'aa': 'OK','bb': 'Great','cc': 'Perfect'}
Я где-то читал, что переопределенный метод call_wrapper класса Spyne ServiceBase может регистрировать запросы и ответы XML данные для этой услуги. Но реализация того же самого привела к странным проблемам с журналированием и c:
class ServiceBaseAbstract(ServiceBase):
def call_wrapper(cls, ctx):
try:
return ctx.service_class.call_wrapper(ctx)
except Exception as err:
print err
Выдает ошибку:
No handlers could be found for logger "spyne.application.server"
API работает нормально без переопределения call_wrapper.
Я действительно смущен и не могу найти выход из этого. Ваша помощь будет высоко ценится. Спасибо