const winston = require('winston');
const { format, transports } = require('winston');
// Step 1: Create a logger instance
const logger = winston.createLogger({
level: 'info',
format: format.combine(
format.timestamp(),
format.json()
),
transports: [
// Step 2: Add console transport for development
new transports.Console({
format: format.combine(
format.colorize(),
format.simple()
)
}),
// Step 3: Add file transport for production
new transports.File({ filename: 'logs/error.log', level: 'error' }),
new transports.File({ filename: 'logs/combined.log' })
]
});
// Step 4: Set the logger level based on environment
if (process.env.NODE_ENV !== 'production') {
logger.level = 'debug';
}
// Example usage in code:
logger.debug('Debug message');
logger.info('Info message');
logger.warn('Warning message');
logger.error('Error message');