|  | 
| 1 |  | -const { createLogger, format, transports } = require('winston'); | 
| 2 |  | -require('winston-mongodb'); | 
| 3 |  | -require('dotenv').config(); | 
|  | 1 | +const { createLogger, format, transports } = require("winston"); | 
|  | 2 | +require("winston-mongodb"); | 
|  | 3 | +require("dotenv").config(); | 
| 4 | 4 | 
 | 
|  | 5 | +// Create the logger | 
| 5 | 6 | const logger = createLogger({ | 
| 6 |  | -  level: 'info', | 
| 7 |  | -  format: format.combine( | 
| 8 |  | -    format.timestamp(), | 
| 9 |  | -    format.json() | 
| 10 |  | -  ), | 
|  | 7 | +  level: "info", | 
|  | 8 | +  format: format.combine(format.timestamp(), format.json()), | 
| 11 | 9 |   transports: [ | 
| 12 |  | -    new transports.Console({ format: format.simple(), level: 'error' }), | 
| 13 |  | -    new transports.File({ filename: 'logs/app.log' }), | 
|  | 10 | +    new transports.Console({ format: format.simple(), level: "info" }), // Log all levels to console | 
| 14 | 11 |   ], | 
| 15 | 12 | }); | 
| 16 | 13 | 
 | 
| 17 |  | -logger.info('Logger initialized.'); | 
|  | 14 | +// Optional: Add MongoDB transport if a connection string is provided | 
|  | 15 | +if (process.env.MONGODB_URI) { | 
|  | 16 | +  logger.add( | 
|  | 17 | +    new transports.MongoDB({ | 
|  | 18 | +      level: "info", | 
|  | 19 | +      db: process.env.MONGODB_URI, | 
|  | 20 | +      options: { useUnifiedTopology: true }, | 
|  | 21 | +      collection: "app_logs", | 
|  | 22 | +    }), | 
|  | 23 | +  ); | 
|  | 24 | +} | 
|  | 25 | + | 
|  | 26 | +logger.info("Logger initialized."); | 
| 18 | 27 | 
 | 
| 19 | 28 | module.exports = logger; | 
0 commit comments