From ec3b35f72ccbb17778488671a3a784742a103f83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20DECOOL?= Date: Thu, 4 Jun 2020 23:13:45 +0200 Subject: [PATCH 1/2] Fix array offset access on null in RavenHandler --- src/Monolog/Handler/RavenHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Monolog/Handler/RavenHandler.php b/src/Monolog/Handler/RavenHandler.php index 1929f25f..9d24dfe8 100644 --- a/src/Monolog/Handler/RavenHandler.php +++ b/src/Monolog/Handler/RavenHandler.php @@ -86,7 +86,7 @@ class RavenHandler extends AbstractProcessingHandler // the record with the highest severity is the "main" one $record = array_reduce($records, function ($highest, $record) { - if ($record['level'] > $highest['level']) { + if (null === $highest || $record['level'] > $highest['level']) { return $record; } From c3a05db90c1342e447969572084941fdd8a35240 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 8 Jul 2020 20:59:21 +0200 Subject: [PATCH 2/2] Fix unique_id in WebProcessor not being disableable, fixes #1470 --- src/Monolog/Processor/WebProcessor.php | 8 ++++---- tests/Monolog/Processor/WebProcessorTest.php | 13 +++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Monolog/Processor/WebProcessor.php b/src/Monolog/Processor/WebProcessor.php index 684188f6..2e8dfae1 100644 --- a/src/Monolog/Processor/WebProcessor.php +++ b/src/Monolog/Processor/WebProcessor.php @@ -52,6 +52,10 @@ class WebProcessor implements ProcessorInterface throw new \UnexpectedValueException('$serverData must be an array or object implementing ArrayAccess.'); } + if (isset($this->serverData['UNIQUE_ID'])) { + $this->extraFields['unique_id'] = 'UNIQUE_ID'; + } + if (null !== $extraFields) { if (isset($extraFields[0])) { foreach (array_keys($this->extraFields) as $fieldName) { @@ -104,10 +108,6 @@ class WebProcessor implements ProcessorInterface $extra[$extraName] = isset($this->serverData[$serverName]) ? $this->serverData[$serverName] : null; } - if (isset($this->serverData['UNIQUE_ID'])) { - $extra['unique_id'] = $this->serverData['UNIQUE_ID']; - } - return $extra; } } diff --git a/tests/Monolog/Processor/WebProcessorTest.php b/tests/Monolog/Processor/WebProcessorTest.php index 4105baf7..3e4effb6 100644 --- a/tests/Monolog/Processor/WebProcessorTest.php +++ b/tests/Monolog/Processor/WebProcessorTest.php @@ -88,6 +88,19 @@ class WebProcessorTest extends TestCase $this->assertSame(array('url' => 'A', 'http_method' => 'C'), $record['extra']); } + public function testProcessorAddsOnlyRequestedExtraFieldsIncludingOptionalFields() + { + $server = array( + 'REQUEST_URI' => 'A', + 'UNIQUE_ID' => 'X', + ); + + $processor = new WebProcessor($server, array('url')); + $record = $processor($this->getRecord()); + + $this->assertSame(array('url' => 'A'), $record['extra']); + } + public function testProcessorConfiguringOfExtraFields() { $server = array(