All checks were successful
Compila e pubblica sul registro integrato / Build-Docker-Image (push) Successful in 8m22s
64 lines
1.8 KiB
JavaScript
64 lines
1.8 KiB
JavaScript
const fs = require("node:fs");
|
|
const path = require("node:path");
|
|
const shared = require("./shared.js");
|
|
let logFile;
|
|
|
|
let dir = 'log/';
|
|
|
|
if (!fs.existsSync(dir)) {
|
|
fs.mkdirSync(dir);
|
|
}
|
|
logFile = path.join(__dirname + '/' + dir, "NetBird-UptimeKuma.log");
|
|
|
|
console.log(`[${shared.now()}] File di log situato in ${logFile}`);
|
|
|
|
if ("MAX_LOG_SIZE" in process.env) {
|
|
shared.setMaxLogSize(process.env.MAX_LOG_SIZE);
|
|
}
|
|
console.log(`[${shared.now()}] Dimensione massima del file di log: ${shared.getMaxLogSize()} MB`);
|
|
|
|
function writeToLog(message) {
|
|
fs.appendFileSync(logFile, `${message}\n`);
|
|
}
|
|
|
|
function Log(message) {
|
|
console.log(message);
|
|
keepLogfileSmall();
|
|
writeToLog(message);
|
|
}
|
|
|
|
function keepLogfileSmall() {
|
|
let stats = fs.statSync(logFile);
|
|
let currentLogSize = stats.size / (1024 * 1024);
|
|
|
|
if (currentLogSize >= shared.getMaxLogSize()) {
|
|
try {
|
|
const data = fs.readFileSync(logFile, 'utf8');
|
|
|
|
let lastWorkingTokenIndex = data.lastIndexOf("Nuovo token creato");
|
|
if (lastWorkingTokenIndex == -1) {
|
|
try {
|
|
fs.writeFileSync(logFile, "");
|
|
Log(`[${shared.now()}] Log precedente cancellato correttamente.`)
|
|
} catch (err) {
|
|
Log(`[${shared.now()}] Errore nella scrittura del file: ${err}`);
|
|
|
|
}
|
|
} else {
|
|
let lastWorkingTokenLine = data.substring(lastWorkingTokenIndex - 22, lastWorkingTokenIndex + 60) + "\n";
|
|
|
|
try {
|
|
fs.writeFileSync(logFile, lastWorkingTokenLine);
|
|
Log(`[${shared.now()}] Log precedente cancellato correttamente.`)
|
|
} catch (err) {
|
|
Log(`[${shared.now()}] Errore nella scrittura del file: ${err}`);
|
|
}
|
|
}
|
|
} catch (err) {
|
|
Log(`[${shared.now()}] Errore nella lettura del file: ${err}`);
|
|
}
|
|
|
|
}
|
|
}
|
|
module.exports = { Log };
|