import { createLogger, format, transports } from "winston"
import { config } from "./configuration"


const printFn = format.printf(({ guildId, level, message, errorCode, requestId, timestamp: logTimestamp }: { [k: string]: string }) => {
  return `[${guildId ?? ''}][${level}][${logTimestamp}][${errorCode ?? ''}][${requestId ?? ''}]:${message}`
})

const logFormat = format.combine(
  format.timestamp(),
  printFn
)

const consoleTransports = [
  new transports.Console({
    format: logFormat
  })
]
export const logger = createLogger({
  level: config.bot.debug ? 'debug' : 'info',
  format: logFormat,
  silent: config.bot.silent,
  transports: consoleTransports
})
