punktde / sentry-flow
Sends exceptions and additional data to Sentry server using Raven client.
Installs: 66 016
Dependents: 1
Suggesters: 0
Security: 0
Stars: 4
Watchers: 8
Forks: 2
Open Issues: 0
Type:neos-package
Requires
- neos/flow: ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0
- sentry/sentry: ^4.0
README
This is a Sentry client package for the Flow framework.
Have a look at https://sentry.io for more information about Sentry.
Installation
$ composer require punktde/sentry-flow
Compatibilty matrix
Configuration
Add the following to your Settings.yaml
and replace the dsn
setting with your project DSN (API Keys in your Sentry project):
PunktDe: Sentry: Flow: dsn: 'https://public_key@your-sentry-server.com/project-id'
You can also set the Sentry Environment to filter your exceptions by e.g. dev-/staging-/live-system.
Set the env variable SENTRY_ENVIRONMENT
or add your value to your Settings.yaml
:
PunktDe: Sentry: Flow: environment: 'live'
Furthermore you can set the Sentry Release version to help to identifiy with which release an error occurred the first time.
By default, a file which is starting with the name RELEASE_
is searched and the values after RELEASE_
is used for Sentry.
Alternatively you can override the filebased release number and set an environment variable SENTRY_RELEASE
or add your value to your Settings.yaml
:
PunktDe: Sentry: Flow: release: '5.0.3'
If you need to use a custom transport e.g. to write the sentry reports to a file, you must implement the Sentry\TransportInterface
:
<?php declare(strict_types=1); namespace Vendor\Package\Sentry\Transport; use Sentry\Event; use Sentry\Exception\JsonException; use Sentry\Transport\TransportInterface; use Sentry\Util\JSON; class FileWriterTransport implements TransportInterface { /** * @param Event $event * * @return string|null Returns the ID of the event or `null` if it failed to be sent * * @throws JsonException */ public function send(Event $event): ?string { if (file_put_contents('My\Path\And\FileName', JSON::encode($event)) !== false) { return $event->getId(); } return null; } }
Then you configure the class to be used:
PunktDe: Sentry: Flow: transportClass: '\Vendor\Package\Sentry\Transport\FileWriterTransport'
Usage
Sentry will log all exceptions that have the rendering option logException
enabled. This can be enabled or disabled
by status code or exception class according to the Flow configuration.