helhum / sentry-typo3
Sentry Integration for TYPO3
Installs: 24 212
Dependents: 0
Suggesters: 0
Security: 0
Stars: 19
Watchers: 7
Forks: 15
Open Issues: 2
Requires
- php: >=8.1
- helhum/php-error-reporting: ^1.0
- php-http/guzzle7-adapter: ^1.0
- sentry/sdk: ^3.3
- typo3/cms-core: ^11.5
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.2
- phpstan/phpstan: ^1.0
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-doctrine: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpstan/phpstan-strict-rules: ^1.0
- saschaegerer/phpstan-typo3: ^1.1.2
- typo3/minimal: *
README
Exception and error logging with Sentry, see https://sentry.io
Sentry provides open-source and hosted error monitoring that helps all software teams discover, triage, and prioritize errors in real-time.
Sentry is available as SaaS including a free plan for developers or as download for self-hosting.
This package is a wrapper for https://github.com/getsentry/sentry-php
Installation
$ composer require helhum/sentry-typo3
Configuration
Set the dsn in your global configuration:
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['sentry']['dsn'] = 'http://public_key:secret_key@your-sentry-server.com/project-id';
It is possible to change / add other Sentry options like this:
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['sentry'][<sentry option>];
Since the integration is purely done with log writers, make sure you add at least one writer. It is recommended to add a global writer as follows:
$GLOBALS['TYPO3_CONF_VARS']['LOG']['writerConfiguration'][\TYPO3\CMS\Core\Log\LogLevel::WARNING] = [ \Helhum\SentryTypo3\Log\Writer\SentryWriter::class => [], ];
To get additional information for each error/warning logged, add the breadcrumb writer as well
$GLOBALS['TYPO3_CONF_VARS']['LOG']['writerConfiguration'][\TYPO3\CMS\Core\Log\LogLevel::INFO][\Helhum\SentryTypo3\Log\Writer\SentryBreadcrumbWriter::class] = [];
If you want to have different environments to filter by in Sentry, you can set them like this:
$GLOBALS['TYPO3_CONF_VARS']['SYS']['environment'] = 'development';
Where should I put the configuration?
This package expects settings to be exposed in main TYPO3 configuration (aka `TYPO3_CONF_VARS). How you expose it, totally depends on your use case, your deployment strategy and project structure.
This means: Put the configuration in either LocalConfiguration.php
or AdditionalConfiguration.php
depending on your needs and structure of your project.
How to test the connection to Sentry?
Run typo3 sentry:test
cli command, that is provided and
some messages should be reported to the configured Sentry endpoint.
Improvements / Issues
This package is managed on GitHub. Feel free to get in touch at https://github.com/helhum/sentry-typo3