*/ class RollbarHandler extends AbstractProcessingHandler { /** * Rollbar notifier * * @var RollbarNotifier */ protected $rollbarNotifier; /** * @param RollbarNotifier $rollbarNotifier RollbarNotifier object constructed with valid token * @param integer $level The minimum logging level at which this handler will be triggered * @param boolean $bubble Whether the messages that are handled can bubble up the stack or not */ public function __construct(RollbarNotifier $rollbarNotifier, $level = Logger::ERROR, $bubble = true) { $this->rollbarNotifier = $rollbarNotifier; parent::__construct($level, $bubble); } /** * {@inheritdoc} */ protected function write(array $record) { if (isset($record['context']['exception']) && $record['context']['exception'] instanceof Exception) { $this->rollbarNotifier->report_exception($record['context']['exception']); } else { $extraData = array( 'level' => $record['level'], 'channel' => $record['channel'], 'datetime' => $record['datetime'], ); $this->rollbarNotifier->report_message( $record['message'], $record['level_name'], array_merge($record['context'], $record['extra'], $extraData) ); } } /** * {@inheritdoc} */ public function close() { $this->rollbarNotifier->flush(); } }