Monolog handler for Sentry PHP SDK v2/v3 with breadcrumbs support
It is a Monolog handler for Sentry PHP SDK v2 and v3 with breadcrumbs support.
The suggested installation method is via composer:
# For Sentry PHP SDK v3
composer require bgalati/monolog-sentry-handler
# For Sentry PHP SDK v2
composer require bgalati/monolog-sentry-handler:^1.2
<?php
use BGalati\MonologSentryHandler\SentryHandler;
use Sentry\State\Hub;
$sentryHandler = new SentryHandler(Hub::getCurrent());
/** @var $logger Monolog\Logger */
$logger->pushHandler($sentryHandler);
// Add records to the log
$logger->debug('Foo');
$logger->error('Bar');
Check out the handler constructor to know how to control the minimum logging level and bubbling.
Note
- It is a good idea to combine this handler with a
FingersCrossedHandler
and aBufferHandler
to leverage Sentry breadcrumbs. It gives maximum context for each Sentry event.Look at the symfony guide for a complete example with Monolog and symfony
At the moment the official SDK proposes two Monolog handlers:
Sentry\Monolog\Handler
: each logs becomes a Sentry event
Sentry\Monolog\BreadcrumbHandler
: each logs is added as a breadcrumb in the current event
Both of them don't send event immediately. Thus, sending Sentry events happens; either when PHP process terminates or when the flush is done explicitly.
This lib proposes a Handler that is different:
FingersCrossedHandler
As per this comment, Monolog project does not accept new handler with 3rd party dependencies.
For new handlers with third-party dependencies IMO the right way is to publish as a third-party package, with requires on monolog and on whichever dependency is needed. It lets Composer resolve everything which makes more sense really.
Fork me.
Install dependencies with make vendor
.
Run tests with make tests
.
See CHANGELOG.md.