Ver código fonte

Ensure private error handler does not cause problems, fixes #1866

Jordi Boggiano 1 ano atrás
pai
commit
233e0b27a0
1 arquivos alterados com 6 adições e 2 exclusões
  1. 6 2
      src/Monolog/Handler/StreamHandler.php

+ 6 - 2
src/Monolog/Handler/StreamHandler.php

@@ -134,7 +134,9 @@ class StreamHandler extends AbstractProcessingHandler
             }
             $this->createDir($url);
             $this->errorMessage = null;
-            set_error_handler([$this, 'customErrorHandler']);
+            set_error_handler(function (...$args) {
+                return $this->customErrorHandler(...$args);
+            });
             try {
                 $stream = fopen($url, 'a');
                 if ($this->filePermission !== null) {
@@ -212,7 +214,9 @@ class StreamHandler extends AbstractProcessingHandler
         $dir = $this->getDirFromStream($url);
         if (null !== $dir && !is_dir($dir)) {
             $this->errorMessage = null;
-            set_error_handler([$this, 'customErrorHandler']);
+            set_error_handler(function (...$args) {
+                return $this->customErrorHandler(...$args);
+            });
             $status = mkdir($dir, 0777, true);
             restore_error_handler();
             if (false === $status && !is_dir($dir) && strpos((string) $this->errorMessage, 'File exists') === false) {