信息发布→ 登录 注册 退出

composer怎么安装Sentry异常监控SDK_composer日志告警依赖引入【实操】

发布时间:2026-01-09

点击量:
应根据框架和日志系统选择对应包:Laravel 5.6+ 用 sentry/sentry-laravel,Symfony/Slim/纯 PHP 用 sentry/sentry 并手动注册,已有 Monolog 的项目补装 monolog-sentry-handler 桥接。

直接用 composer require 就能装好 Sentry PHP SDK,但默认不带日志通道集成,告警收不到 Laravel 或 Monolog 的日志——得手动配 sentry/sentry-laravel 或桥接 monolog-sentry-handler

装哪个包?看框架和日志系统

别直接 composer require sentry/sentry,那是纯底层 SDK,没自动捕获、没日志绑定。实际项目要分情况:

  • Laravel 5.6+:优先用 composer require sentry/sentry-laravel,它自带异常拦截 + 日志通道 + Artisan 命令
  • Symfony / Slim / 纯 PHP:用 composer require sentry/sentry + 手动注册错误处理器
  • 已有 Monolog(比如 CodeIgniter、ThinkPHP):补装 composer require monolog/monolog sentry/sentry,再加 monolog-sentry-handler 桥接器

配置 DSN 和环境时最容易漏的三件事

SENTRY_DSN 不只是贴链接就完事,环境变量、初始化时机、上下文隔离都影响上报效果:

  • DSN 必须设在 .env 里(Laravel)或启动早期(如 index.php 开头),不能等路由加载完才 init
  • 不同环境要用不同 environment 字段,否则测试服错误混进生产看板:
    SENTRY_ENVIRONMENT=production
  • 若用队列或 CLI 命令,需单独调用 Sentry\init(),否则后台任务的异常不上报

Laravel 日志告警失效?检查 Handler 是否被覆盖

装了 sentry/sentry-laravel 后,storage/logs/laravel.log 里的错误仍不触发 Sentry 告警,大概率是日志通道没走 Sentry Handler:

  • 确认 config/logging.phpstacksingle 通道里包含 sentry
    'channels' => [
        'stack' => [
            'driver' => 'stack',
            'channels' => ['single', 'sentry'],
        ],
        'sentry' => [
            'driver' => 'sentry',
        ],
    ]
  • 如果自定义了 Monolog\Handler\StreamHandler 并直接 new 实例,会绕过 Laravel 的 Sentry Handler,必须用 tap 或改用 createLogger
  • 调试技巧:临时在 App\Exceptions\Handler::report() 里加 \Sentry\captureException($exception),验证 DSN 是否有效

真正卡住人的不是安装命令,而是 DSN 初始化太晚、日志通道没挂载、CLI 环境没重 init —— 这三处一错,看着装好了,其实一条告警都不会发出去。

标签:# Logging  # 自带  # 自定义  # 要用  # 就能  # 那是  # 看着  # 桥接  # 装好  # 里加  # 已有  # sentry  # php  # require  # symfony  # stream  # 环境变量  # 路由  # app  # 处理器  # composer  # laravel  # thinkphp  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!