定制 moston/magento2-sentry 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

moston/magento2-sentry

Composer 安装命令:

composer require moston/magento2-sentry

包简介

Magento 2 Logger for Sentry

README 文档

README

Latest Version on Packagist Total Downloads Magento Support PHPStan passing

This Magento 2 module integrates the Sentry sdk into magento 2. Depending on the log level configured in the backend of magento 2, notifications and errors can be send to sentry.

Installation

  • composer require justbetter/magento2-sentry
  • bin/magento module:enable JustBetter_Sentry
  • bin/magento setup:upgrade
  • bin/magento setup:di:compile
  • bin/magento setup:static-content:deploy

Configuration

For configuration with Adobe Cloud, check below.

This module uses the Magento Deployment Configuration for most it's configuration. This means that you need to add this array to your app/etc/env.php:

'sentry' => [
    'dsn' => 'example.com',
    'logrocket_key' => 'example/example',
    'environment' => null,
    'log_level' => \Monolog\Logger::WARNING,
    'errorexception_reporting' => E_ALL,
    'ignore_exceptions' => [],
    'mage_mode_development' => false,
    'js_sdk_version' => \JustBetter\Sentry\Block\SentryScript::CURRENT_VERSION,
    'tracing_enabled' => true,
    'tracing_sample_rate' => 0.5,
    'ignore_js_errors' => [],
    'disable_default_integrations' => [
        \Sentry\Integration\ModulesIntegration::class,
    ]
]

Next to that there are some configuration options under Stores > Configuration > JustBetter > Sentry.

Configuration values

  • dsn: Please enter here the DSN you got from Sentry for your project. You can find the DSN in the project settings under "Client Key (DSN)"
  • environment: Here you can specify the environment under which the deployed version is running. Common used environments are production, staging, and development. With this option you can differentiate between errors which happen on the staging and i.e. on the production system
  • log_level: With this configuration you can specify from which logging level on Sentry should get the messages
  • errorexception_reporting: If the Exception being thrown is an instance of ErrorException send the error to sentry if it matches the error reporting. This uses the same syntax as Error Reporting eg. E_ERROR | E_WARNING to only log Errors and Warnings.
  • ignore_exceptions: If the class being thrown matches any in this list do not send it to Sentry e.g. [\Magento\Framework\Exception\NoSuchEntityException::class]
  • mage_mode_development: If this option is set to true you will receive issues in Sentry even if you're Magento is running in develop mode.
  • js_sdk_version: if this option is set, it will load the explicit version of the javascript SDK of Sentry.
  • tracing_enabled if this option is set to true, tracing got enabled (bundle file got loaded automatically). Default: false
  • tracing_sample_rate if tracing is enabled, you should also set the sample rate. Default: 0.2
  • ignore_js_errors array of javascript error messages, which should be not send to Sentry. (see also ignoreErrors in Sentry documentation)
  • disable_default_integrations provide a list of FQCN of default integrations, which you do not want to use. List of default integrations. Default: []

Configuration for Adobe Cloud

Since Adobe Cloud doesn't allow you to add manually add content to the env.php file, the configuration can be done using the "Variables" in Adobe Commerce using the following variables:

  • CONFIG__SENTRY__ENVIRONMENT__ENABLED: boolean
  • CONFIG__SENTRY__ENVIRONMENT__DSN: string
  • CONFIG__SENTRY__ENVIRONMENT__LOGROCKET_KEY: string
  • CONFIG__SENTRY__ENVIRONMENT__ENVIRONMENT: string
  • CONFIG__SENTRY__ENVIRONMENT__LOG_LEVEL: integer
  • CONFIG__SENTRY__ENVIRONMENT__ERROREXCEPTION_REPORTING: integer
  • CONFIG__SENTRY__ENVIRONMENT__IGNORE_EXCEPTIONS: A JSON encoded array of classes
  • CONFIG__SENTRY__ENVIRONMENT__MAGE_MODE_DEVELOPMENT: string
  • CONFIG__SENTRY__ENVIRONMENT__JS_SDK_VERSION: string
  • CONFIG__SENTRY__ENVIRONMENT__TRACING_ENABLED: boolean
  • CONFIG__SENTRY__ENVIRONMENT__TRACING_SAMPLE_RATE: float
  • CONFIG__SENTRY__ENVIRONMENT__IGNORE_JS_ERRORS: A JSON encoded array of error messages

The following configuration settings can be overridden in the Magento admin. This is limited to ensure that changes to particular config settings can only be done on server level and can't be broken by changes in the admin.

Optional error page configuration

  • Optional you can configure custom error pages in pub/errors. You can use the sentry feedback form and insert here the sentry log ID. The Sentry Log Id is captured in de customer session and can be retrieved in processor.php.

Sending additional data to Sentry when logging errors

  • When calling any function from the Psr\Log\LoggerInterface you can pass any data to the parameter $context and it will be send to Sentry as 'Custom context'.

Change / Filter events

This module has an event called sentry_before_send that is dispatched before setting the config before_send. This provides the means to edit / filter events. You could for example add extra criteria to determine if the exception should be captured to Sentry. To prevent the Exception from being captured you can set the event to null or unset it completly.

public function execute(\Magento\Framework\Event\Observer $observer)
{
    $observer->getEvent()->getSentryEvent()->unsEvent();
}

Example: https://github.com/justbetter/magento2-sentry-filter-events

Compatibility

The module is tested on Magento version 2.4.x with sentry sdk version 3.x. feel free to fork this project or make a pull request.

Ideas, bugs or suggestions?

Please create a issue or a pull request.

Contributing

Contributing? Awesome! Thank you for your help improving the module!

  • When making a PR please add a description what you've added, and if relevant why.
  • To save time on codestyle feedback, please run
    • composer install
    • composer run codestyle
    • composer run analyse

About us

We’re a innovative development agency from The Netherlands building awesome websites, webshops and web applications with Laravel and Magento. Check out our website justbetter.nl and our open source projects.

License

MIT

JustBetter logo

moston/magento2-sentry 适用场景与选型建议

moston/magento2-sentry 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 12 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 04 月 10 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 moston/magento2-sentry 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 moston/magento2-sentry 我们能提供哪些服务?
定制开发 / 二次开发

基于 moston/magento2-sentry 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 12
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 8
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 82
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-04-10