method parseFile documentation in bbn\Parsers\Apache

function($file, array $res = []) { $num = 0; self::setLastErrors($num); if (file_exists($file)) { $handle = fopen($file, "r"); if ($handle) { $current_error = false; $min = 0; if ($res) { $min = X::maxWithKey($res, 'last_date'); } while (($buffer = fgets($handle)) !== false) { if ($parsed = self::parseLine($buffer)) { if (isset($parsed['error'])) { if ($min > $parsed['date']) { continue; } $num++; $idx = X::find( $res, [ 'error' => $parsed['error'], 'file' => $parsed['file'], 'line' => $parsed['line'] ] ); if ($idx !== null) { $res[$idx]['count']++; $res[$idx]['last_date'] = $parsed['date']; if (isset($res[$idx]['backtrace'])) { unset($res[$idx]['backtrace']); } $current_error = $idx; } else{ $current_error = count($res); $res[] = [ 'first_date' => $parsed['date'], 'last_date' => $parsed['date'], 'count' => 1, 'type' => $parsed['type'], 'error' => $parsed['error'], 'file' => $parsed['file'], 'line' => $parsed['line'] ]; if (count($res) > self::$file_limit) { $tmp = $res[$current_error]; X::sortBy($res, 'last_date', 'DESC'); $current_error = X::find($res, $tmp); array_pop($res); } self::setLastErrors($num); } } elseif (isset($parsed['action'], $res[$current_error])) { if (!isset($res[$current_error]['backtrace'])) { $res[$current_error]['backtrace'] = []; } elseif (count($res[$current_error]['backtrace']) > 10) { continue; } array_unshift($res[$current_error]['backtrace'], $parsed); } } } if (!feof($handle)) { throw new \Exception(X::_("Error: unexpected fgets() fail")); } fclose($handle); X::sortBy($res, 'last_date', 'DESC'); } } return $res; }

BBN is a suite of PHP and JS libraries and VueJS components - all open-source! bbn.io, build applications, the quick way

This website uses cookies to ensure you get the best experience on our website.