我正在尝试按照https://github.com/airbrake/pybrake#django-integration中描述的步骤在Django项目中使用Airbrake记录器。在
我将LOGGING
设置配置为:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'airbrake': {
'level': 'ERROR',
'class': 'pybrake.LoggingHandler',
}
},
'loggers': {
'lucy_web': {
'handlers': ['airbrake'],
'level': 'ERROR',
'propagate': True,
}
}
}
然后,在lucy_web
层次结构中名为lucy_web/lib/session_recommendation.py
的特定文件中,我有以下测试函数:
但是,如果我试图从Django shell调用此函数,pybrake
本身会记录一个错误:
strconv.ParseInt: parsing "None": invalid syntax
以下是命令的完整序列:
^{3}$从https://golang.org/pkg/strconv/#ParseInt看来,strconv.ParseInt
实际上是Go语言的一个内置函数,所以我不明白为什么{
airbrake服务器本身似乎是用Go编写的。在
这可以从以下事实推断:
在他们的“关于”页面(https://airbrake.io/about)中,他们将自己的一名成员列为“首席围棋开发者”,并说他们“从1.0之前就开始使用围棋了”。在他们的首席技术官的描述中,他们说他喜欢“用围棋入侵他的家”。
您将从Python得到一个
strconv.ParseInt
(Go)错误有一个报告称,使用Ruby客户端报告airbrake错误(https://github.com/airbrake/airbrake/issues/502)也会得到
strconv.ParseInt
。因此,对于这个错误的解释是,Python客户机在发送报告并将其记录下来时,会从服务器获取此错误。在
至于如何调试,我认为最好的方法是捕获客户机发送到服务器的请求。在
例如,您可以通过修改此处的代码来指向您自己的服务器而不是airbrake的服务器并记录请求:
https://github.com/airbrake/pybrake/blob/master/pybrake/notifier.py#L41
或者以某种方式捕获HTTP流量。在
您可能会看到一个JSON/XML/HTTP表单数据,其中将有一个“None”值附加到一个应该是数字的属性上,这将在服务器端引发此错误。在
相关问题 更多 >
编程相关推荐