UNPKG

@nevuamarkets/poly-websockets

Version:

Plug-and-play Polymarket WebSocket price alerts

36 lines (35 loc) 1.39 kB
import winston from 'winston'; // Override with LOG_LEVEL environment variable (e.g., LOG_LEVEL=info npm start) export const logger = winston.createLogger({ level: process.env.LOG_LEVEL || 'warn', format: winston.format.combine( winston.format.timestamp(), winston.format.errors({ stack: true }), winston.format.colorize(), winston.format.printf(({ level, message, timestamp, ...rest }) => { // Ensure consistent order: timestamp, level, message, then rest of fields const restString = Object.keys(rest) .filter(key => key !== 'service') // Exclude service since we add it in defaultMeta .sort() .map(key => `${key}: ${JSON.stringify(rest[key])}`) .join(', '); return `${timestamp} ${level}: ${message}${restString ? ` (${restString})` : ''}`; }) ), defaultMeta: { service: 'poly-websockets' }, transports: [ new winston.transports.Console({ format: winston.format.combine( winston.format.colorize({ all: true, colors: { error: 'red', warn: 'yellow', info: 'cyan', debug: 'green' } }) ) }) ] });