记录 WAMP worker 回溯错误
Logging WAMP worker Trace Back Error
我一直在尝试调试基于 python 组件的 WAMP(Web 应用程序消息传递协议)的远程过程调用。例如:
前端(浏览器)
session.call('math.add2', [2, 'two']);
后端(python)
@wamp.register("math.add2")
def add2(self, x, y):
return x + y
它给出了一些关于错误的想法。
对于像这样的简单示例,它根本不重要,但对于包含大量文件和模块的大型应用程序,我不太确定查明错误以便输出的最佳方法包含文件名、行号和描述的完整错误跟踪。
作为解决方案,我稍微修改了 wamp.py(添加了行 traceback.print_exc() ) 如下所示,在控制台日志中输出错误:
# autobahn/asyncio/wamp.py
...
import traceback
...
class FutureMixin:
...
@staticmethod
def _as_future(fun, *args, **kwargs):
try:
res = fun(*args, **kwargs)
except Exception as e:
traceback.print_exc() # Added this line
...
这是标准的处理方式吗?
AutobahnPython 允许您打开在 WAMP 错误消息中发送回溯:
class MyComponent(ApplicationSession):
def __init__(self, config = None):
ApplicationSession.__init__(self, config)
self.traceback_app = True
我一直在尝试调试基于 python 组件的 WAMP(Web 应用程序消息传递协议)的远程过程调用。例如:
前端(浏览器)
session.call('math.add2', [2, 'two']);
后端(python)
@wamp.register("math.add2")
def add2(self, x, y):
return x + y
它给出了一些关于错误的想法。
对于像这样的简单示例,它根本不重要,但对于包含大量文件和模块的大型应用程序,我不太确定查明错误以便输出的最佳方法包含文件名、行号和描述的完整错误跟踪。
作为解决方案,我稍微修改了 wamp.py(添加了行 traceback.print_exc() ) 如下所示,在控制台日志中输出错误:
# autobahn/asyncio/wamp.py
...
import traceback
...
class FutureMixin:
...
@staticmethod
def _as_future(fun, *args, **kwargs):
try:
res = fun(*args, **kwargs)
except Exception as e:
traceback.print_exc() # Added this line
...
这是标准的处理方式吗?
AutobahnPython 允许您打开在 WAMP 错误消息中发送回溯:
class MyComponent(ApplicationSession):
def __init__(self, config = None):
ApplicationSession.__init__(self, config)
self.traceback_app = True