I currently have php setup to write its error messages, exceptions, ... to stderr using Monolog and I wanted to add an additional Handler to send the output directly to Sentry.
This is what I have in PHP:
$monologLogger = new Logger('logger');
$streamHandler = new StreamHandler('php://stderr');
$formatter = new JsonFormatter();
$options = [
'dsn' => 'http://KEY@URL//PROJECTID',
'default_integrations' => false, // use Monolog to send errors
];
\Sentry\init($options);
$sentryHandler = new Handler(SentrySdk::getCurrentHub(), Logger::ERROR);
$sentryHandler->setFormatter($formatter);
$monologLogger->pushHandler($sentryHandler);
$streamHandler->setFormatter($formatter);
$monologLogger->pushHandler($streamHandler);
return $monologLogger;
It outputs everything correctly to stderr, but I do not receive any events in sentry. Does anyone know what might be wrong with my script?
Maybe your problem is dsn.
But I used the easiest way in the project
You can find a more efficient way
see here more #sentry integrations
$logger = new \Monolog\Logger('name');
$client = \Sentry\ClientBuilder::create([
'dsn' => DSN
])->getClient();
$handler = new \Sentry\Monolog\Handler(
new \Sentry\State\Hub($client)
);
$logger->pushHandler($handler);
$logger->info('Message', $context);
$logger->error('Message', $context);

When you catch an exception you can call this to manually send it to Sentry
Sentry\captureException($e);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With