// Error log — ring buffer + persist to file (survives PM2 restart)
const fs = require('fs');
const path = require('path');
const MAX_ERRORS = 50;
const LOG_FILE = path.join(__dirname, 'data', 'errors.json');
let errors = [];
// Загрузить ошибки из файла при старте
try {
if (fs.existsSync(LOG_FILE)) {
errors = JSON.parse(fs.readFileSync(LOG_FILE, 'utf8'));
if (!Array.isArray(errors)) errors = [];
}
} catch { errors = []; }
function getKZTime() {
return new Date().toLocaleString('en-CA', { timeZone: 'Asia/Almaty', hour12: false });
}
function save() {
try { fs.writeFileSync(LOG_FILE, JSON.stringify(errors)); } catch {}
}
function addError(channel, type, message) {
errors.push({ time: getKZTime(), channel, type, message });
if (errors.length > MAX_ERRORS) errors.shift();
save();
}
function getErrors(limit = 20) {
return errors.slice(-limit).reverse();
}
function getErrorCount() {
return errors.length;
}
module.exports = { addError, getErrors, getErrorCount };
📜 Git History
0413c12fix: 9 багов — caption limit, orphan cleanup, security hardening7 weeks ago
045688afeat: dashboard v0.3 — 9 новых источников + 10 улучшений дашборда7 weeks ago
Show last diff
Loading...