我正在Flask应用中测试Sentry错误记录系统(getsentry.com)。除了我尝试为后台进程录制一些关键logging.INFO
消息的例外情况。
测试我是否使用内置的Flask记录器向Sentry发送消息以获取关键的URL请求。
问题是日志记录条目在发生时不会发送给Sentry。相反,他们似乎被拯救了#39;并且只有在应用程序进程完成后才会发送,这对生产服务器没用。
我认为这可能是我使用Docker容器的一个问题,但我已经在基本应用程序和调试服务器中测试过Sentry,同样的情况也是如此。
如果需要,我可以提供代码(仅限电话ATM),但认为这对于熟悉该问题的人来说已经足够了。
答案 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/