diff --git a/dashcaddy-api/src/security/log-digest.js b/dashcaddy-api/src/security/log-digest.js index b3cbe3b..8dd6ee4 100644 --- a/dashcaddy-api/src/security/log-digest.js +++ b/dashcaddy-api/src/security/log-digest.js @@ -11,6 +11,7 @@ const fs = require('fs'); const fsp = require('fs').promises; const path = require('path'); const { DOCKER } = require('../utilities/constants'); +const { log } = require('../utils/logging'); const docker = new Docker(); @@ -63,7 +64,7 @@ class LogDigest extends EventEmitter { // Collect logs every hour this.collectInterval = setInterval(() => { this._collectHourlyLogs().catch(e => - console.error('[LogDigest] Hourly collection failed:', e.message) + log.error('logdigest', e, { phase: 'hourlyCollect' }) ); }, DOCKER.DIGEST.COLLECT_INTERVAL); @@ -71,7 +72,7 @@ class LogDigest extends EventEmitter { this._scheduleDailyDigest(); // Run initial collection after 2 minutes - setTimeout(() => { + this._initialTimeout = setTimeout(() => { if (this.running) { this._collectHourlyLogs().catch(() => {}); } @@ -89,6 +90,10 @@ class LogDigest extends EventEmitter { clearTimeout(this.digestTimeout); this.digestTimeout = null; } + if (this._initialTimeout) { + clearTimeout(this._initialTimeout); + this._initialTimeout = null; + } } /** @@ -195,7 +200,7 @@ class LogDigest extends EventEmitter { hourSummary.services[appId] = serviceSummary; } } catch (e) { - console.error('[LogDigest] Container enumeration failed:', e.message); + log.error('logdigest', e, { phase: 'enumerateContainers' }); } // Add to ring buffer @@ -258,7 +263,7 @@ class LogDigest extends EventEmitter { const delay = next.getTime() - now.getTime(); this.digestTimeout = setTimeout(() => { this.generateDailyDigest().catch(e => - console.error('[LogDigest] Daily digest generation failed:', e.message) + log.error('logdigest', e, { phase: 'dailyDigest' }) ); // Reschedule for tomorrow if (this.running) this._scheduleDailyDigest();