Commit efc4efb5 authored by Dominik Hebeler's avatar Dominik Hebeler

admin interface working again

parent 0d504944
......@@ -87,8 +87,48 @@ class AdminInterface extends Controller
return $names;
}
private function convertLogs()
{
$oldLogsPath = \storage_path("logs/metager/old/");
$dir = new \DirectoryIterator($oldLogsPath);
foreach ($dir as $fileinfo) {
if ($fileinfo->isDot()) {
continue;
}
$filename = $oldLogsPath . "/" . $fileinfo->getFilename();
$daysAgo = substr($fileinfo->getFilename(), strrpos($fileinfo->getFilename(), ".") + 1);
$dateOfFile = Carbon::now()->subDays($daysAgo);
$outputFile = \storage_path("logs/metager/" . $dateOfFile->format("Y/m/d") . ".log");
if (!file_exists(dirname($outputFile))) {
\mkdir(dirname($outputFile), 0777, true);
}
$fhw = fopen($outputFile, "w");
$fhr = fopen($filename, "r");
try {
$first = true;
while (($line = fgets($fhr)) != false) {
$date = trim(substr($line, 0, strpos($line, "]")), "[");
$date = trim(substr($date, strrpos($date, " ")));
$rest = trim(substr($line, strpos($line, "]") + 1));
$outputString = "";
if (!$first) {
$outputString .= PHP_EOL;
}
$outputString .= $date . " " . $rest;
$first = false;
fwrite($fhw, $outputString);
}
} finally {
fclose($fhw);
fclose($fhr);
}
}
}
public function count(Request $request)
{
#$this->convertLogs();
#return;
$days = intval($request->input('days', 28));
$interface = $request->input('interface', 'all');
if (!is_int($days) || $days <= 0) {
......@@ -98,6 +138,7 @@ class AdminInterface extends Controller
$oldLogs = [];
$rekordTag = 0;
$rekordTagSameTime = 0;
$minCount = 0;
$rekordTagDate = "";
$size = 0;
......@@ -249,14 +290,14 @@ class AdminInterface extends Controller
$days = $maxDate->diffInDays(Carbon::now());
}
$logToday = "/var/log/metager/mg3.log";
$logToday = \App\MetaGer::getMGLogFile();
$archivePath = "/var/log/metager/archive/";
$archivePath = storage_path("logs/metager/");
$today = [
'logFile' => $logToday,
'countPath' => storage_path('logs/count/'),
'countFile' => storage_path('logs/count/' . getmypid()),
'countPath' => storage_path('logs/metager/count/'),
'countFile' => storage_path('logs/metager/count/' . getmypid()),
];
if (\file_exists($today["countFile"])) {
unlink($today["countFile"]);
......@@ -271,10 +312,10 @@ class AdminInterface extends Controller
$requestedLogs = [];
for ($i = 1; $i <= $days; $i++) {
$date = Carbon::now()->subDays($i);
$countPath = storage_path('logs/count/' . $date->year . "/" . $date->month . "/");
$countPath = storage_path('logs/metager/count/' . $date->format("Y/m") . "/");
$countFile = $countPath . $date->day . ".json";
$neededLogs[$i] = [
'logFile' => $archivePath . "mg3.log.$i",
'logFile' => $archivePath . $date->format("Y/m/d") . ".log",
'countPath' => $countPath,
'countFile' => $countFile,
];
......
......@@ -39,6 +39,7 @@ class ConvertCountFile implements ShouldQueue
];
$fh = false;
$fullRound = false;
$error = false;
try {
$fh = fopen($this->files["logFile"], "r");
$currentLogTime = Carbon::now()->hour(0)->minute(0)->second(0)->addMinutes(5);
......@@ -47,7 +48,7 @@ class ConvertCountFile implements ShouldQueue
$logTime = [];
$interface = "";
// i.e. [Wed Apr 17 00:00:01] ref=https://metager.de/ time=0.51 serv=web interface=de
if (preg_match('/\[[a-zA-z]{3}\s[a-zA-Z]{3}\s\d{2}\s(\d{2}:\d{2}:\d{2}).*?\sinterface=(\S+)/', $line, $matches)) {
if (preg_match('/(\d{2}:\d{2}:\d{2}).*?\sinterface=(\S+)/', $line, $matches)) {
// Create Date Object
$logTime = explode(":", $matches[1]);
$interface = $matches[2];
......@@ -84,18 +85,22 @@ class ConvertCountFile implements ShouldQueue
if (empty($result["time"][$currentLogTime->format('H:i')])) {
$result["time"][$currentLogTime->format('H:i')] = $result["insgesamt"];
}
} catch (\ErrorException $e) {
$error = true;
} finally {
if ($fh !== false) {
fclose($fh);
}
$oldUmask = umask(0);
// Write the result to a File
if (!file_exists($this->files["countPath"])) {
mkdir($this->files["countPath"], 0777, true);
if (!$error) {
$oldUmask = umask(0);
// Write the result to a File
if (!file_exists($this->files["countPath"])) {
mkdir($this->files["countPath"], 0777, true);
}
file_put_contents($this->files["countFile"], json_encode($result, JSON_PRETTY_PRINT));
umask($oldUmask);
}
file_put_contents($this->files["countFile"], json_encode($result, JSON_PRETTY_PRINT));
umask($oldUmask);
Redis::del(md5($this->files["countFile"]));
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment