UNPKG

@spotable/attio-sdk

Version:
46 lines (40 loc) 1.17 kB
import * as winston from "winston"; import chalk from "chalk"; import { serializeError } from "serialize-error"; const customFormat = winston.format.printf(({ level, message, error, ...extraOptions }) => { const colorFn = (() => { switch (level) { case "error": return chalk.red; case "warn": return chalk.yellow; case "info": return chalk.white; case "debug": return chalk.blue; default: return chalk.white; } })(); const levelEmoji = (() => { switch (level) { case "error": return "❌"; case "warn": return "⚠️"; case "info": return "ℹ️"; case "debug": return "🐛"; default: return "🔍"; } })(); return `${colorFn(`${levelEmoji} ${message}`)}${error ? `\n${chalk.red(serializeError(error))}` : ""}${extraOptions && Object.keys(extraOptions).length > 0 ? `\n${chalk.gray(JSON.stringify(extraOptions, null, 2))}` : ""}`; }); const logger = winston.createLogger({ level: "debug", format: customFormat, transports: [new winston.transports.Console()], }); export default logger;