Trace log prewiew counter + his API

This commit is contained in:
2020-07-30 16:31:25 +02:00
parent b174022f9a
commit a6cb51f2f5
6 changed files with 94 additions and 1 deletions

View File

@@ -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;
}
}

View File

@@ -8,8 +8,12 @@ class LogRecordTypes{
'level' => 1,
'identifier' =>'warning',
];
const INFO = [
const EXEPTION = [
'level' => 2,
'identifier' => 'exeption',
];
const INFO = [
'level' => 3,
'identifier' => 'info',
];
}