Просмотр исходного кода

Merge pull request #608 from xploSEoF/patch-1

Ignore "call_user_func" from debug backtrace
Jordi Boggiano 10 лет назад
Родитель
Сommit
00a3ad6572
1 измененных файлов с 20 добавлено и 9 удалено
  1. 20 9
      src/Monolog/Processor/IntrospectionProcessor.php

+ 20 - 9
src/Monolog/Processor/IntrospectionProcessor.php

@@ -29,6 +29,11 @@ class IntrospectionProcessor
     private $level;
 
     private $skipClassesPartials;
+    
+	private $skipFunctions = array(
+		'call_user_func',
+		'call_user_func_array',
+	);
 
     public function __construct($level = Logger::DEBUG, array $skipClassesPartials = array())
     {
@@ -56,15 +61,21 @@ class IntrospectionProcessor
 
         $i = 0;
 
-        while (isset($trace[$i]['class'])) {
-            foreach ($this->skipClassesPartials as $part) {
-                if (strpos($trace[$i]['class'], $part) !== false) {
-                    $i++;
-                    continue 2;
-                }
-            }
-            break;
-        }
+        while (isset($trace[$i]['class']) || in_array($trace[$i]['function'], $this->skipFunctions)) {
+			if(isset($trace[$i]['class'])) {
+				foreach ($this->skipClassesPartials as $part) {
+					if (strpos($trace[$i]['class'], $part) !== false) {
+						$i++;
+						continue 2;
+					}
+				}
+			} elseif(in_array($trace[$i]['function'], $this->skipFunctions)) {
+				$i++;
+				continue;
+			}
+			
+			break;
+		}
 
         // we should have the call source now
         $record['extra'] = array_merge(