Files
NetBird-UptimeKuma/logs.js
La Programmatrice Verde 69f90e7a34
All checks were successful
Compila e pubblica sul registro integrato / Build-Docker-Image (push) Successful in 8m22s
Dimensione massima log
2026-01-04 15:35:25 +01:00

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