Skip to content

Instantly share code, notes, and snippets.

@julien-c
Last active December 16, 2015 16:09
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save julien-c/5461486 to your computer and use it in GitHub Desktop.
Save julien-c/5461486 to your computer and use it in GitHub Desktop.
Sentry/Monolog integration in Laravel 4
<?php
if (Config::has('sentry.key')) {
$bufferHandler = new Monolog\Handler\BufferHandler(
new Monolog\Handler\RavenHandler(
new Raven_Client(Config::get('sentry.key')),
Monolog\Logger::WARNING
)
);
App::instance('log.buffer', $bufferHandler);
Log::getMonolog()->pushHandler($bufferHandler);
}
App::shutdown(function() {
// Flush buffered logs
if (App::bound('log.buffer')) {
App::make('log.buffer')->close();
}
});
@julien-c
Copy link
Author

$ composer require raven/raven

@geomagilles
Copy link

ça ne serait pas plutôt :

if (Config::has('sentry.key')) {
    $bufferHandler = new Monolog\Handler\BufferHandler(
        new Monolog\Handler\RavenHandler(
            new Raven_Client(Config::get('sentry.key')),
            Monolog\Logger::WARNING
        )
    );

    App::instance('log.buffer', $bufferHandler);

    Log::getMonolog()->pushHandler($bufferHandler);
}

Monolog\Logger::WARNING n'est pas une option de Raven_Client mais de RavenHandler, non ?

@geomagilles
Copy link

Aussi, un point n'est pas clair pour moi : sentry permet de logguer des messages et des exceptions. Qu'est-ce qui est utilisé ici ?

@julien-c
Copy link
Author

@geomagilles Yes, correct !

@geomagilles
Copy link

I want to use it for a worker that runs continuously. In this case, App::shutdown is not called. Do you have an idea about how to manage this case?

I've found how. Just avoid using a bufferHandler when launching a worker:

$bufferHandler = new Monolog\Handler\RavenHandler(
new Raven_Client(Config::get('sentry.key')),
Monolog\Logger::WARNING
);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment