From c479006770f48814fc44f5799d4362b48b500a85 Mon Sep 17 00:00:00 2001 From: Alexander Borg Date: Tue, 19 Aug 2025 21:27:21 +0200 Subject: [PATCH] Fix jwt-token --- server/utils/apiDebugLogger.js | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/server/utils/apiDebugLogger.js b/server/utils/apiDebugLogger.js index de324cd..06dd88e 100644 --- a/server/utils/apiDebugLogger.js +++ b/server/utils/apiDebugLogger.js @@ -1,37 +1,57 @@ const fs = require('fs'); const path = require('path'); +// Singleton instance +let loggerInstance = null; + class ApiDebugLogger { constructor() { + // Return existing instance if already created + if (loggerInstance) { + return loggerInstance; + } + // Use mounted volume directory that's accessible from host this.logFile = '/app/debug_logs/api_debug.log'; this.enabled = process.env.NODE_ENV === 'development' || process.env.API_DEBUG === 'true'; this.fileLoggingEnabled = false; + this.initialized = false; - // Debug logging setup - if (this.enabled) { + // Debug logging setup (only run once) + if (this.enabled && !this.initialized) { console.log(`🐛 ApiDebugLogger: Enabled (NODE_ENV=${process.env.NODE_ENV}, API_DEBUG=${process.env.API_DEBUG})`); console.log(`🐛 ApiDebugLogger: Log file path: ${this.logFile}`); // Ensure the debug_logs directory exists try { - const fs = require('fs'); const debugDir = '/app/debug_logs'; if (!fs.existsSync(debugDir)) { fs.mkdirSync(debugDir, { recursive: true }); console.log(`🐛 ApiDebugLogger: Created debug logs directory at ${debugDir}`); } - fs.writeFileSync(this.logFile, `# API Debug Log Started at ${new Date().toISOString()}\n`); + // Only create the file if it doesn't exist, otherwise just append + if (!fs.existsSync(this.logFile)) { + fs.writeFileSync(this.logFile, `# API Debug Log Started at ${new Date().toISOString()}\n`); + console.log(`🐛 ApiDebugLogger: Created new log file`); + } else { + fs.appendFileSync(this.logFile, `\n# API Debug Log Session Started at ${new Date().toISOString()}\n`); + console.log(`🐛 ApiDebugLogger: Appending to existing log file`); + } + this.fileLoggingEnabled = true; + this.initialized = true; console.log(`🐛 ApiDebugLogger: File logging enabled at ${this.logFile} (mounted to host: ./debug_logs/)`); } catch (error) { console.warn(`⚠️ ApiDebugLogger: File logging disabled - using console only. Error: ${error.message}`); this.fileLoggingEnabled = false; } - } else { + } else if (!this.enabled) { console.log(`🐛 ApiDebugLogger: Disabled (NODE_ENV=${process.env.NODE_ENV}, API_DEBUG=${process.env.API_DEBUG})`); } + + // Store the singleton instance + loggerInstance = this; } log(method, url, statusCode, requestBody = {}, responseBody = {}, headers = {}) {