diff --git a/src/Monolog/Processor/IntrospectionProcessor.php b/src/Monolog/Processor/IntrospectionProcessor.php index e0bf65ab..bf7df07a 100644 --- a/src/Monolog/Processor/IntrospectionProcessor.php +++ b/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(