summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJordi Boggiano <j.boggiano@seld.be>2016-09-25 17:41:12 +0200
committerJordi Boggiano <j.boggiano@seld.be>2016-09-25 17:41:12 +0200
commit941c21b793388a1e3a775e1878408b642df1672b (patch)
tree0a5a68052dfe084fdb6cf594cbcea9e69a188198 /src
parent8f5c153b690a0cab37be1cee0a13cb2c25859990 (diff)
parent40b48910307be4216643a19e19491ece640bc59c (diff)
downloadmonolog-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.php58
-rw-r--r--src/Monolog/Handler/SyslogUdpHandler.php8
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;
}