Parcourir la source

Restore filtering behavior, refs #663

Jordi Boggiano il y a 10 ans
Parent
commit
80c4bfb9fd

+ 9 - 1
src/Monolog/Processor/WebProcessor.php

@@ -53,7 +53,15 @@ class WebProcessor
         }
         }
 
 
         if (null !== $extraFields) {
         if (null !== $extraFields) {
-            $this->extraFields = $extraFields;
+            if (isset($extraFields[0])) {
+                foreach (array_keys($this->extraFields) as $fieldName) {
+                    if (!in_array($fieldName, $extraFields)) {
+                        unset($this->extraFields[$fieldName]);
+                    }
+                }
+            } else {
+                $this->extraFields = $extraFields;
+            }
         }
         }
     }
     }
 
 

+ 15 - 0
tests/Monolog/Processor/WebProcessorTest.php

@@ -88,6 +88,21 @@ class WebProcessorTest extends TestCase
         $this->assertSame(array('url' => 'A', 'http_method' => 'C'), $record['extra']);
         $this->assertSame(array('url' => 'A', 'http_method' => 'C'), $record['extra']);
     }
     }
 
 
+    public function testProcessorConfiguringOfExtraFields()
+    {
+        $server = array(
+            'REQUEST_URI'    => 'A',
+            'REMOTE_ADDR'    => 'B',
+            'REQUEST_METHOD' => 'C',
+            'SERVER_NAME'    => 'F',
+        );
+
+        $processor = new WebProcessor($server, array('url' => 'REMOTE_ADDR'));
+        $record = $processor($this->getRecord());
+
+        $this->assertSame(array('url' => 'B'), $record['extra']);
+    }
+
     /**
     /**
      * @expectedException UnexpectedValueException
      * @expectedException UnexpectedValueException
      */
      */