obisconcept / neos-sentry
将Sentry错误跟踪工具集成到Neos CMS中。
Requires
- neos/flow: ^4.0
- neos/neos: ^3.0
- sentry/sentry: ^1.9
This package is auto-updated.
Last update: 2024-09-11 22:19:02 UTC
README
将Sentry错误跟踪工具集成到Neos CMS中。
安装
要安装此插件,您只需在项目的根目录中通过composer要求它即可。
composer require obisconcept/neos-sentry
配置
为了在Neos中配置Sentry,您至少需要两个值。
- 项目的公钥
- 项目的标识符
您可以通过点击“安装说明”或通过导航到https://sentry.io/[your-company]/[your-project]/getting-started/php
来找到这些信息。
在此页面上,Sentry提供了一个Raven客户端DSN的示例链接,如下所示
在@
符号之前的部分是您项目的密钥。在斜杠之后URL的最后一部分是您项目的ID。
用于自动化错误报告
您需要将项目配置作为环境变量全局设置。
这是因为,在错误报告时,您不能依赖于任何组件(如Flow的配置组件),因为此时它可能已经损坏。
建议在Webroot下面的本地.htaccess
文件中配置这些值。
Apache2的示例配置
SetEnv SENTRY_HOST sentry.io
SetEnv SENTRY_PROJECT_KEY 3c613164xxxxxxxxxxx2beb58b3be87b
SetEnv SENTRY_PROJECT_ID 126xxxx
可以省略主机,因为它默认为sentry.io
。只有当您使用自托管的Sentry实例时,才指定它。
如果您省略了其他任何变量,远程异常记录将静默失败!
这是因为此插件绝不应该破坏现有的错误报告,在处理另一个错误时抱怨错误的配置值可能导致未定义的行为。
手动使用
如果您想直接在代码中使用SentryClient服务类,您需要在Settings.yaml
中至少配置项目密钥和标识符。
ObisConcept: NeosSentry: project: key: 'MY PROJECT KEY' id: 'MY PROJECT ID'
与上述所述不同,Sentry在手动使用时会抱怨配置违规。
如果您使用自托管的Sentry实例,您还可以在配置中提供host
密钥。
ObisConcept: NeosSentry: host: 'my-company.com'
使用
自动化记录
对于自动化错误报告,不需要特殊的使用说明。当您正确配置,如上所述,它应该能够正常工作。
请注意,Sentry异常处理器仅在生产环境中自动注册!
如果您想在其他上下文中使用它,您必须在Settings.yaml
中全局或按上下文配置它,如下所示
Neos: Flow: error: exceptionHandler: className: 'ObisConcept\NeosSentry\Error\SentryExceptionHandler'
请注意,类SentryExceptionHandler
扩展了Neos\Flow\Error\ProductionExceptionHandler
,因此不会直接在页面上显示调试输出!
建议不要修改处理器配置,不要将Sentry配置为其他上下文的处理器,因为Neos会迅速用与开发相关的异常消息耗尽您的配额。
手动记录
如果您想手动发送消息或异常到Sentry,也可以让您的类依赖于ObisConcept\NeosSentry\Domain\Service\SentryClient
。此类公开了在相应文档中提到的任何方法。
数据隐私
请注意,Sentry收集了大量数据,以便为您提供修复错误所需的所有信息。它也可能存储与个人相关的数据,这些数据受GDPR规定的约束。告知用户Sentry的使用情况,以及收集的数据及其用途的目的,这是您的责任。