python - 如何在 raven/sentry 中记录带有上下文的完整调用堆栈?

标签 python logging sentry raven

当引发的异常在调用堆栈的根部被捕获时,我可以在 Sentry 中看到调用堆栈的每个级别的整个上下文。

但是,当我使用 captureMessage() 时,我在 Sentry 中看不到任何上下文。

如果我在下面的代码中使用 captureException(),我只能看到调用堆栈的顶部。

try:
    raise Exception('Breakpoint!')
except:
    raven_client.captureException()

换句话说,我想在 Sentry 中看到一条包含完整堆栈跟踪和上下文的记录消息。

最佳答案

Python SDK 能够通过将 stack=True 传递给 captureMessage 来捕获任意堆栈跟踪:

raven_client.captureMessage('hello world', stack=True)

还有一个 auto_log_stacks 值可以在配置客户端时打开:

raven_client = Client(..., auto_log_stacks=True)

警告:自动记录堆栈很有用,但在某些常见情况下不能保证准确。这也是对性能的影响,尽管影响很小,因为它必须不断调用 inspect.stack()

关于python - 如何在 raven/sentry 中记录带有上下文的完整调用堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37270893/

相关文章:

python - Twisted Python - 如何为证书选项创建可接受的密码列表?

python - 使用另一列的值获取某一列的值

java - Log4J:我可以在运行时启用/禁用类的日志记录吗?

c# - 在 ASP.NET Core 启动期间使用 Serilog 和 Sentry

django - 如何通过多个 raven 配置使用 Sentry 日志记录

python - Python 中的调试变量

python - Python 的 datetime.time 子类化

docker - 如何从Docker容器重定向命令输出

iis - 如何增加失败请求日志的最大大小?

php - Symfony 上的 Sentry : how to exclude `NotFoundHttpException`