|
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