← Back
// 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...