how to manage logging using winston for production and development in node js "github"

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');