通过Flask app

时间:2016-02-01 07:12:43

标签: python logging flask sentry

我正在Flask应用中测试Sentry错误记录系统(getsentry.com)。除了我尝试为后台进程录制一些关键logging.INFO消息的例外情况。

测试我是否使用内置的Flask记录器向Sentry发送消息以获取关键的URL请求。

问题是日志记录条目在发生时不会发送给Sentry。相反,他们似乎被拯救了#39;并且只有在应用程序进程完成后才会发送,这对生产服务器没用。

我认为这可能是我使用Docker容器的一个问题,但我已经在基本应用程序和调试服务器中测试过Sentry,同样的情况也是如此。

如果需要,我可以提供代码(仅限电话ATM),但认为这对于熟悉该问题的人来说已经足够了。

1 个答案:

答案 0 :(得分:1)

您应用程序使用的任何线程模型都可能与Sentry SDK的默认线程传输不匹配:

https://github.com/getsentry/raven-python/blob/master/raven/transport/threaded.py#L26

你会注意到它会在进程终止时强制发送任何待处理的消息,这很可能就是你要发生的事情。然而,真正的问题是工作线程似乎没有运行。

您应该尝试使用同步HttpTransport,或者确定以上是否为真:

https://docs.getsentry.com/hosted/clients/python/transports/