Trace log prewiew counter + his API
This commit is contained in:
@@ -23,4 +23,56 @@ class LogMaintainer
|
||||
$seconds = $days * 86400;
|
||||
$this->cleaningDir ('../logs/', $seconds);
|
||||
}
|
||||
|
||||
public static function getStats(){
|
||||
$stats = array(
|
||||
'ERROR' => 0,
|
||||
'WARNING' => 0,
|
||||
'EXEPTION' => 0,
|
||||
'INFO' => 0,
|
||||
);
|
||||
|
||||
$result = array();
|
||||
$result = self::logFinder ('../logs/', $result);
|
||||
|
||||
foreach ($result as $path => $files) {
|
||||
foreach ($files as $file) {
|
||||
|
||||
# code...
|
||||
$matches = array();
|
||||
|
||||
$re = '/\[(?:warning|error|info)\]/';
|
||||
$str = file_get_contents($path . $file);
|
||||
preg_match_all($re, $str, $matches);
|
||||
if (count($matches[0]) == 0) continue;
|
||||
|
||||
foreach ($matches[0] as $match) {
|
||||
switch($match){
|
||||
case '[error]': $stats['ERROR']++; break;
|
||||
case '[warning]': $stats['WARNING']++; break;
|
||||
case '[exeption]': $stats['EXEPTION']++; break;
|
||||
default: $stats['INFO']++; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $stats;
|
||||
}
|
||||
|
||||
private static function logFinder ($dir, $result) {
|
||||
$logFiles = scandir ($dir);
|
||||
foreach ($logFiles as $key => $file) {
|
||||
if (in_array ($file,array (".", "..", ".gitkeep")))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (!is_dir($dir . $file)) {
|
||||
$result[$dir][] = $file;
|
||||
} else {
|
||||
$result = self::logFinder ($dir . $file . "/", $result);
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user