justbetter / magento2-sentry
Magento 2 的 Sentry 日志器
Requires
- php: >=8.0
- magento/framework: *
- magento/module-config: ^101.2
- monolog/monolog: >=2.7.0
- nyholm/psr7: ^1.2
- sentry/sdk: ^4.0
Requires (Dev)
- bitexpert/phpstan-magento: ^0.11.0
- phpstan/phpstan: ^1.10
- dev-master
- 3.8.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-feature/user-context
- dev-develop
This package is auto-updated.
Last update: 2024-09-09 09:17:46 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,
'ignore_js_errors' => [],
'disable_default_integrations' => [
\Sentry\Integration\ModulesIntegration::class,
]
]
除了这些,您可以在 Stores > Configuration > JustBetter > Sentry 下找到一些配置选项。
配置值
dsn
:请在此处输入您从 Sentry 获取的项目 DSN。您可以在“Client Key (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
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__IGNORE_JS_ERRORS
: 一个JSON编码的错误信息数组
以下配置设置可以在Magento管理员中进行覆盖。这是有限制的,以确保只能在对特定配置设置进行更改时在服务器级别进行,并且不会被管理员中的更改破坏。
可选的错误页面配置
- 可选地,您可以在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
兼容性
该模块在2.4.x版本的Magento和3.x版本的Sentry SDK上进行测试。我们不再支持2.1.x版本的Magento,请随意fork此项目或创建一个pull request。
想法、错误或建议?
请创建一个问题或pull request。
关于我们
我们是一家来自荷兰的创新开发机构,使用Laravel和Magento构建出色的网站、网店和Web应用程序。查看我们的网站justbetter.nl和我们的开源项目。