You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Python中如何向Sentry发送日志文件附件?

正确实现方案

1. 版本要求

首先确保你安装的sentry-sdk版本 ≥ 1.0.0,旧版本不支持附件上传能力,可通过以下命令升级:

pip install --upgrade sentry-sdk

2. 全局范围添加附件(所有上报事件都携带log文件)

import sentry_sdk
from sentry_sdk import configure_scope

# 先初始化Sentry
sentry_sdk.init(
    dsn="你的Sentry项目DSN",
    # 其他初始化配置
)

# 全局添加附件,之后所有上报的错误、消息都会自动携带该log文件
configure_scope(lambda scope: scope.add_attachment(path="sentry.log"))

3. 局部范围添加附件(仅单次/指定范围的事件携带log)

你之前push_scope的用法有误,Python SDK 中push_scope是上下文管理器,正确用法如下:

from sentry_sdk import push_scope, capture_exception, capture_message

# 方式1:捕获特定异常时附加log
try:
    # 你的业务代码
    1/0
except Exception as e:
    with push_scope() as scope:
        scope.add_attachment(path="sentry.log")
        capture_exception(e)

# 方式2:指定范围内的所有上报都携带log
with push_scope() as scope:
    scope.add_attachment(path="sentry.log")
    capture_message("测试携带附件的消息")
    # 该范围内的其他异常上报也会自动带附件

4. 清空全局附件

configure_scope(lambda scope: scope.clear_attachments())

常见排查点

  • 确认sentry.log文件路径正确,且运行程序的用户对该文件有读取权限
  • 确认Sentry项目的附件上传功能已开启,且文件大小不超过项目限制(默认最大100MB)
  • 若需要动态更新log内容,不要在程序启动时一次性添加全局附件,可改为每次上报前在局部scope中添加,避免上传旧版本的log文件

内容的提问来源于stack exchange,提问作者Karen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:54:03