diff options
author | Jordi Boggiano <j.boggiano@seld.be> | 2016-09-25 17:41:12 +0200 |
---|---|---|
committer | Jordi Boggiano <j.boggiano@seld.be> | 2016-09-25 17:41:12 +0200 |
commit | 941c21b793388a1e3a775e1878408b642df1672b (patch) | |
tree | 0a5a68052dfe084fdb6cf594cbcea9e69a188198 /src | |
parent | 8f5c153b690a0cab37be1cee0a13cb2c25859990 (diff) | |
parent | 40b48910307be4216643a19e19491ece640bc59c (diff) | |
download | monolog-941c21b793388a1e3a775e1878408b642df1672b.zip monolog-941c21b793388a1e3a775e1878408b642df1672b.tar.gz monolog-941c21b793388a1e3a775e1878408b642df1672b.tar.bz2 |
Merge branch '1.x'
Diffstat (limited to 'src')
-rw-r--r-- | src/Monolog/Handler/RollbarHandler.php | 58 | ||||
-rw-r--r-- | src/Monolog/Handler/SyslogUdpHandler.php | 8 |
2 files changed, 39 insertions, 27 deletions
diff --git a/src/Monolog/Handler/RollbarHandler.php b/src/Monolog/Handler/RollbarHandler.php index 0a82faa..c9102e4 100644 --- a/src/Monolog/Handler/RollbarHandler.php +++ b/src/Monolog/Handler/RollbarHandler.php @@ -21,6 +21,14 @@ use Monolog\Logger; * If the context data contains a `payload` key, that is used as an array * of payload options to RollbarNotifier's report_message/report_exception methods. * + * Rollbar's context info will contain the context + extra keys from the log record + * merged, and then on top of that a few keys: + * + * - level (rollbar level name) + * - monolog_level (monolog level name, raw level, as rollbar only has 5 but monolog 8) + * - channel + * - datetime (unix timestamp) + * * @author Paul Statezny <paulstatezny@gmail.com> */ class RollbarHandler extends AbstractProcessingHandler @@ -32,6 +40,17 @@ class RollbarHandler extends AbstractProcessingHandler */ protected $rollbarNotifier; + protected $levelMap = array( + Logger::DEBUG => 'debug', + Logger::INFO => 'info', + Logger::NOTICE => 'info', + Logger::WARNING => 'warning', + Logger::ERROR => 'error', + Logger::CRITICAL => 'critical', + Logger::ALERT => 'critical', + Logger::EMERGENCY => 'critical', + ); + /** * Records whether any log records have been added since the last flush of the rollbar notifier * @@ -56,36 +75,29 @@ class RollbarHandler extends AbstractProcessingHandler */ protected function write(array $record) { - if (isset($record['context']['exception']) && $record['context']['exception'] instanceof Exception) { - $context = $record['context']; + $context = $record['context']; + $payload = array(); + if (isset($context['payload'])) { + $payload = $context['payload']; + unset($context['payload']); + } + $context = array_merge($context, $record['extra'], array( + 'level' => $this->levelMap[$record['level']], + 'monolog_level' => $record['level_name'], + 'channel' => $record['channel'], + 'datetime' => $record['datetime']->format('U'), + )); + + if (isset($context['exception']) && $context['exception'] instanceof Exception) { $exception = $context['exception']; unset($context['exception']); - $payload = []; - if (isset($context['payload'])) { - $payload = $context['payload']; - unset($context['payload']); - } - $this->rollbarNotifier->report_exception($exception, $context, $payload); } else { - $extraData = [ - 'level' => $record['level'], - 'channel' => $record['channel'], - 'datetime' => $record['datetime']->format('U'), - ]; - - $context = $record['context']; - $payload = []; - if (isset($context['payload'])) { - $payload = $context['payload']; - unset($context['payload']); - } - $this->rollbarNotifier->report_message( $record['message'], - $record['level_name'], - array_merge($record['context'], $record['extra'], $extraData), + $context['level'], + $context, $payload ); } diff --git a/src/Monolog/Handler/SyslogUdpHandler.php b/src/Monolog/Handler/SyslogUdpHandler.php index 4e2335d..2f16c3b 100644 --- a/src/Monolog/Handler/SyslogUdpHandler.php +++ b/src/Monolog/Handler/SyslogUdpHandler.php @@ -53,19 +53,19 @@ class SyslogUdpHandler extends AbstractSyslogHandler $this->socket->close(); } - private function splitMessageIntoLines($message) + private function splitMessageIntoLines($message): array { if (is_array($message)) { $message = implode("\n", $message); } - return preg_split('/$\R?^/m', $message); + return preg_split('/$\R?^/m', (string) $message, -1, PREG_SPLIT_NO_EMPTY); } /** * Make common syslog header (see rfc5424) */ - protected function makeCommonSyslogHeader($severity) + protected function makeCommonSyslogHeader($severity): string { $priority = $severity + $this->facility; @@ -75,7 +75,7 @@ class SyslogUdpHandler extends AbstractSyslogHandler /** * Inject your own socket, mainly used for testing */ - public function setSocket($socket) + public function setSocket(UdpSocket $socket) { $this->socket = $socket; } |