为 python 应用在 Sentry 上启用 auto_log_stacks

Enabling auto_log_stacks on Sentry for python app

根据这里的 Sentry 文档:https://docs.getsentry.com/on-premise/clients/python/integrations/logging/

在 usage head 下,他们建议不要使用 auto_log_stacks=true 但没有说明为什么他们不推荐这个。有谁知道在现场使用这个选项有什么问题吗?

在某些情况下,inspect.stack()(Sentry 用于获取调用堆栈的功能)可能不准确。

例如,如果您正在使用日志记录处理程序集成,这是调用 captureMessage 的最常见方式,则调用 emit() 的点可能有不同来自原始调用的堆栈跟踪。这不是很常见,但它在很大程度上取决于日志堆栈的使用方式。

此外,对 inspect.stack() 的调用也不是免费的。性能成本并不可观,但值得注意。

我们(哨兵)反对这种功能的主要原因是通常不需要 captureMessage。它主要用于日志记录,而 Sentry 并不旨在聚合日志。唯一真正支持的情况是 log.warning(),我们认为这是可行的,但也不例外。