monolog-bundle
monolog-bundle copied to clipboard
rollbar support for rollbar/rollbar-php rewrite latest version
There is no RollbarNotifier now in the latest version so it cannot be used with monolog
See https://github.com/Seldaek/monolog/issues/980#issuecomment-309313868 - PR welcome if anyone wants, would be good to do this conditionally if rollbar 1.0+ can be detected in code somehow (maybe just checking if RollbarNotifier class exists as that was pre-1.0?)
<?php
namespace Ghs\Application;
use Monolog\Handler\AbstractHandler;
use Monolog\Logger;
use Psr\Log\LoggerInterface;
use Rollbar\RollbarLogger;
class RollbarHandler extends AbstractHandler
{
/** @var RollbarLogger */
private $logger;
public function __construct(LoggerInterface $logger, $level = Logger::DEBUG, $bubble = true)
{
parent::__construct($level, $bubble);
$this->logger = $logger;
}
public function handle(array $record)
{
if (!$this->isHandling($record)) {
return false;
}
$context = $record['context'];
if (isset($context['exception']) && $context['exception'] instanceof \Exception) {
$record['message'] = $context['exception'];
}
$this->logger->log(strtolower($record['level_name']), $record['message'], $record['context']);
return false === $this->bubble;
}
}