webidea24 / magento2-sentry
Magento 2 Logger for Sentry
Requires
- php: >=7.0
- magento/framework: *
- monolog/monolog: >=2.7.0
- nyholm/psr7: ^1.2
- sentry/sdk: ^3.0
- dev-master
- 103.5.0
- 103.4.0
- 103.3.0
- 3.7.2
- 3.7.1
- 3.7.0
- 3.6.0
- 3.5.2
- 3.5.1
- 3.5.0
- 3.4.0
- 3.3.1
- 3.3.0
- 3.2.0
- 3.1.0
- 3.0.2
- 3.0.1
- 3.0.0
- 2.6.1
- 2.6.0
- 2.5.4
- 2.5.3
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.0
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.0
- 0.8.0
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.2
- 0.6.1
- 0.6.0
- 0.5.1
- 0.5.0
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.2
- 0.2.0
- 0.1.0
- 0.0.6
- 0.0.5
- dev-feat-performance
- dev-feat/exclude-integrations
- dev-task/fix-config-override
- dev-task/fix-replay-integration
- dev-task/remove-polyfill
- dev-task-jb/ignore-errors
- dev-task/ignore-errors
- dev-task/ignore-errors-after-unload
- dev-feature/js-sdk-version
- dev-task/tracing-wi24
- dev-task/tracing
This package is auto-updated.
Last update: 2024-08-28 14:20:54 UTC
README
此 Magento 2 模块将 Sentry sdk 集成到 Magento 2 中。根据在 Magento 2 后端配置的日志级别,可以将通知和错误发送到 Sentry。
安装
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
配置
有关 Adobe Cloud 的配置,请参阅下文。
此模块使用 Magento 部署配置 进行大多数配置。这意味着您需要将此数组添加到您的 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,
'performance_tracking_enabled' => true,
'performance_tracking_excluded_areas' => ['adminhtml', 'crontab'],
'profiles_sample_rate' => 0.5,
'ignore_js_errors' => [],
'disable_default_integrations' => [
\Sentry\Integration\ModulesIntegration::class,
]
]
除此之外,在 Stores > Configuration > JustBetter > Sentry 下还有一些配置选项。
配置值
dsn
:请在此处输入从 Sentry 获取的项目 DSN。您可以在“客户端密钥(DSN)”下的项目设置中找到 DSN。environment
:在此处可以指定部署版本运行的运行环境。常用的环境有生产、预发布和开发。使用此选项可以区分在预发布系统和生产系统上发生的错误。log_level
:使用此配置可以指定从哪个日志级别开始,Sentry 应接收消息。errorexception_reporting
:如果抛出的异常是 ErrorException 的实例,并且它符合错误报告,则将错误发送到 Sentry。此选项使用与 Error Reporting 相同的语法,例如E_ERROR | E_WARNING
仅记录错误和警告。ignore_exceptions
:如果抛出的类匹配此列表中的任何类,则不要将其发送到 Sentry,例如[\Magento\Framework\Exception\NoSuchEntityException::class]
mage_mode_development
:如果此选项设置为 true,即使您的 Magento 在开发模式下运行,您也会在 Sentry 中收到问题。js_sdk_version
:如果此选项设置,将加载 Sentry 的明确版本的 JavaScript SDK。tracing_enabled
:如果此选项设置为 true,则启用跟踪(将自动加载捆绑文件)。默认:false
tracing_sample_rate
:如果启用跟踪,您还应该设置样本率。默认:0.2
performance_tracking_enabled
:如果启用性能跟踪,将生成请求的性能报告。默认:false
performance_tracking_excluded_areas
:如果启用performance_tracking_enabled
,建议排除adminhtml
和crontab
区域。默认:['adminhtml', 'crontab']
profiles_sample_rate
:如果此选项大于 0(零),则模块将创建请求的配置文件。请注意,您必须在您的服务器上安装 Excimer 才能使用配置文件。有关 Sentry 文档。您还必须启用跟踪。默认:0
(禁用)ignore_js_errors
:JavaScript 错误消息数组,不应发送到 Sentry。(另请参阅 Sentry 文档 中的ignoreErrors
)disable_default_integrations
提供了一个默认集成的 FQCN 列表,您不想使用。请参阅默认集成列表。默认:[]
Adobe Cloud 配置
由于 Adobe Cloud 不允许您手动将内容添加到 env.php
文件中,因此可以使用以下变量在 Adobe Commerce 中使用 "变量" 来进行配置:
CONFIG__SENTRY__ENVIRONMENT__ENABLED
: 布尔值CONFIG__SENTRY__ENVIRONMENT__DSN
: 字符串CONFIG__SENTRY__ENVIRONMENT__LOGROCKET_KEY
: 字符串CONFIG__SENTRY__ENVIRONMENT__ENVIRONMENT
: 字符串CONFIG__SENTRY__ENVIRONMENT__LOG_LEVEL
: 整数CONFIG__SENTRY__ENVIRONMENT__ERROREXCEPTION_REPORTING
: 整数CONFIG__SENTRY__ENVIRONMENT__IGNORE_EXCEPTIONS
: 类的 JSON 编码数组CONFIG__SENTRY__ENVIRONMENT__MAGE_MODE_DEVELOPMENT
: 字符串CONFIG__SENTRY__ENVIRONMENT__JS_SDK_VERSION
: 字符串CONFIG__SENTRY__ENVIRONMENT__TRACING_ENABLED
: 布尔值CONFIG__SENTRY__ENVIRONMENT__TRACING_SAMPLE_RATE
: 浮点数CONFIG__SENTRY__ENVIRONMENT__TRACING_PERFORMANCE_TRACKING_ENABLED
: 布尔值CONFIG__SENTRY__ENVIRONMENT__TRACING_PERFORMANCE_TRACKING_EXCLUDED_AREAS
: 布尔值CONFIG__SENTRY__ENVIRONMENT__IGNORE_JS_ERRORS
: 错误消息的 JSON 编码数组
以下配置设置可以在 Magento 管理员中覆盖。这仅限于确保只能在不破坏管理员更改的情况下在服务器级别对特定配置设置进行更改。
请注意,在 Adobe Cloud 中无法使用分析功能。
可选的错误页面配置
- 您可以选择在 pub/errors 中配置自定义错误页面。您可以使用 Sentry 反馈表单并将 Sentry 日志 ID 插入此处。Sentry 日志 ID 在客户会话中捕获,可以在
processor.php
中检索。
在记录错误时向 Sentry 发送附加数据
- 当调用 Psr\Log\LoggerInterface 中的任何函数时,您可以将任何数据传递给参数 $context,并将其作为 '自定义上下文' 发送到 Sentry。
更改/过滤事件
此模块有一个名为 sentry_before_send
的事件,该事件在设置配置 before_send 之前触发。这提供了编辑/过滤事件的方法。例如,您可以为确定异常是否应捕获到 Sentry 添加额外的标准。要防止捕获异常,可以将事件设置为 null
或完全取消设置。
public function execute(\Magento\Framework\Event\Observer $observer) { $observer->getEvent()->getSentryEvent()->unsEvent(); }
示例:[https://github.com/justbetter/magento2-sentry-filter-events](https://github.com/justbetter/magento2-sentry-filter-events)
兼容性
该模块已在带有 sentry sdk 版本 3.x 的 Magento 版本 2.4.x 上进行测试。我们不再支持 Magento 2.1.x,请随意分叉此项目或提交拉取请求。
有想法、错误或建议吗?
关于我们
我们是来自荷兰的创新开发机构,使用 Laravel 和 Magento 构建出色的网站、网店和 Web 应用程序。请访问我们的网站 [https://justbetter.nl](https://justbetter.nl) 和我们的 [https://github.com/justbetter](https://github.com/justbetter) 开源项目。