import winston from 'winston';
import path from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

export function createLogger(service) {
  // Create logs directory relative to the project root (two levels up from utils)
  const logsDir = path.join(__dirname, '../../logs');

  return winston.createLogger({
    level: process.env.LOG_LEVEL || 'info',
    format: winston.format.combine(
      winston.format.timestamp(),
      winston.format.json()
    ),
    defaultMeta: { service },
    transports: [
      // Write all logs to console
      new winston.transports.Console({
        format: winston.format.combine(
          winston.format.colorize(),
          winston.format.simple()
        )
      }),
      // Write all logs to service-specific files
      new winston.transports.File({
        filename: path.join(logsDir, `${service}-error.log`),
        level: 'error'
      }),
      new winston.transports.File({
        filename: path.join(logsDir, `${service}-combined.log`)
      })
    ]
  });
} 