【发布时间】:2020-06-11 03:21:33
【问题描述】:
我正在使用 Django 1.9 公开带有 Spyne 版本 2.12.16 的 SOAP 1.1 API
我需要为我平台中的每个请求 XML 和响应 XML 实现日志记录。
Django urls.py 是
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'}
我在某处读到,覆盖 Spyne ServiceBase 类的 call_wrapper 方法可以记录该服务的请求和响应 XML 数据。 但是实施同样的方法会导致奇怪的日志记录等问题:
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。
我真的很困惑,找不到解决办法。您的帮助将不胜感激。谢谢
【问题讨论】:
-
这不是错误,而是警告,而且它不是来自 Spyne,而是来自 Python 的日志基础设施。您需要配置 Python 日志记录以查看 任何 日志消息。
标签: django python-2.7 spyne