Laravel 5.2 custom Monolog bootstrap
$app->configureMonologUsing(function($monolog) use ($app) {
// log more severe messages to loggly
$config = $app->make('config');
$logglyToken = $config->get('app.loggly_token');
$tag = $config->get('app.base_domain');
$monolog->pushHandler(new Monolog\Handler\LogglyHandler($logglyToken . '/tag/' . $tag, Monolog\Logger::ERROR));
// set up default logging
$formatter = new Monolog\Formatter\LineFormatter( "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\r\n", null, false, true);
if ($config->get('app.debug')) {
// we're in debug mode, so log everything
$handler = new Monolog\Handler\RotatingFileHandler(storage_path() . DIRECTORY_SEPARATOR . 'logs/laravel.log', 7, Monolog\Logger::DEBUG);
$handler->setFormatter($formatter);
$monolog->pushHandler($handler);
} else {
// we're not in debug mode, so use fingers crossed logging (https://github.com/Seldaek/monolog/blob/master/src/Monolog/Handler/FingersCrossedHandler.php)
$handler = new Monolog\Handler\RotatingFileHandler(storage_path() . DIRECTORY_SEPARATOR . 'logs/laravel.log', Monolog\Logger::DEBUG);
$handler->setFormatter($formatter);
$fingersCrossedHandler = new Monolog\Handler\FingersCrossedHandler($handler, null, 0 , false);
$monolog->pushHandler($fingersCrossedHandler);
}
});