public function __call($level, $value) { array_walk(self::$filters, function ($filters) use($value, $level) { $catch = false; if (is_string($filters['levels']) && ($filters['levels'] == Level::ALL || $filters['levels'] == $level)) { $catch = true; } elseif (is_array($filters['levels']) && in_array($level, $filters['levels'])) { $catch = true; } if ($catch) { $message = Master::prepare($value); $file = $line = null; if (in_array('f', $filters['layout']['map']) or in_array('l', $filters['layout']['map'])) { $trace = debug_backtrace(false); $fun = $trace[2]; if (isset($fun['file'])) { $file = str_replace("\\", "\\\\", $fun['file']); $line = $fun['line']; } } $uri = isset($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : null; $message = str_replace(["%d", "%f", "%l", "%p", '%uri', "%m"], [date($filters['layout']['date_format']), $file, $line, $level, $uri, $message], $filters['layout']['layout_format']); $filters['filter']->writer($level, $message); } }); }