From 6f4163531ff111b84e4791642ae2f6981d7139f4 Mon Sep 17 00:00:00 2001 From: drb101005 Date: Mon, 18 May 2026 01:29:59 +0530 Subject: [PATCH 1/2] chore(backend): replace console.log with winston logger --- backend/logger.js | 16 ++++++++++++++++ backend/package.json | 2 +- backend/server.js | 8 +++++--- 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 backend/logger.js diff --git a/backend/logger.js b/backend/logger.js new file mode 100644 index 0000000..a2fe4a2 --- /dev/null +++ b/backend/logger.js @@ -0,0 +1,16 @@ +const { createLogger, format, transports } = require('winston'); +const { combine, timestamp, printf, colorize } = format; + +const logFormat = printf(({ level, message, timestamp, stack }) => { + return `${timestamp} ${level}: ${stack || message}`; +}); + +const logger = createLogger({ + level: process.env.LOG_LEVEL || (process.env.NODE_ENV === 'production' ? 'info' : 'debug'), + format: combine(timestamp(), logFormat), + transports: [ + new transports.Console({ format: combine(colorize(), timestamp(), logFormat) }), + ], +}); + +module.exports = logger; diff --git a/backend/package.json b/backend/package.json index 38e15b8..74ab9dd 100644 --- a/backend/package.json +++ b/backend/package.json @@ -6,7 +6,6 @@ "dev": "nodemon server.js", "start": "node server.js", "test": "jasmine spec/**/*.spec.cjs" - }, "keywords": [], "author": "", @@ -22,6 +21,7 @@ "mongoose": "^8.8.2", "passport": "^0.7.0", "passport-local": "^1.0.0", + "winston": "^3.19.0", "zod": "^4.4.3" }, "devDependencies": { diff --git a/backend/server.js b/backend/server.js index 3f19f00..5668e9a 100644 --- a/backend/server.js +++ b/backend/server.js @@ -9,6 +9,8 @@ const cors = require('cors'); // Passport configuration require('./config/passportConfig'); +const logger = require('./logger'); + const app = express(); // CORS configuration @@ -30,10 +32,10 @@ app.use('/api/auth', authRoutes); // Connect to MongoDB mongoose.connect(process.env.MONGO_URI, {}).then(() => { - console.log('Connected to MongoDB'); + logger.info('Connected to MongoDB'); app.listen(process.env.PORT, () => { - console.log(`Server running on port ${process.env.PORT}`); + logger.info(`Server running on port ${process.env.PORT}`); }); }).catch((err) => { - console.log('MongoDB connection error:', err); + logger.error('MongoDB connection error', { message: err.message, stack: err.stack }); }); From 08b209290d7d2bddadab539168e7c92ebdbb5941 Mon Sep 17 00:00:00 2001 From: drb101005 Date: Mon, 18 May 2026 02:00:10 +0530 Subject: [PATCH 2/2] fix(backend): preserve message in logs and use proper Winston error format --- backend/logger.js | 9 +++++---- backend/server.js | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/backend/logger.js b/backend/logger.js index a2fe4a2..2fe3cd8 100644 --- a/backend/logger.js +++ b/backend/logger.js @@ -1,15 +1,16 @@ const { createLogger, format, transports } = require('winston'); -const { combine, timestamp, printf, colorize } = format; +const { combine, timestamp, printf, colorize, errors } = format; const logFormat = printf(({ level, message, timestamp, stack }) => { - return `${timestamp} ${level}: ${stack || message}`; + const stackTrace = stack ? `\n${stack}` : ''; + return `${timestamp} ${level}: ${message}${stackTrace}`; }); const logger = createLogger({ level: process.env.LOG_LEVEL || (process.env.NODE_ENV === 'production' ? 'info' : 'debug'), - format: combine(timestamp(), logFormat), + format: combine(errors({ stack: true }), timestamp(), logFormat), transports: [ - new transports.Console({ format: combine(colorize(), timestamp(), logFormat) }), + new transports.Console({ format: combine(errors({ stack: true }), colorize(), timestamp(), logFormat) }), ], }); diff --git a/backend/server.js b/backend/server.js index 5668e9a..e9b43f8 100644 --- a/backend/server.js +++ b/backend/server.js @@ -37,5 +37,5 @@ mongoose.connect(process.env.MONGO_URI, {}).then(() => { logger.info(`Server running on port ${process.env.PORT}`); }); }).catch((err) => { - logger.error('MongoDB connection error', { message: err.message, stack: err.stack }); + logger.error('MongoDB connection error', err); });