UNPKG

@chtsinc/ch-logger

Version:

Reusable Winston-based logger for CH npm packages with support for console, file logging, and custom logger injection.

27 lines (26 loc) 1.19 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const winston_1 = __importDefault(require("winston")); const logLevel = process.env.LOG_LEVEL || 'info'; const logToFile = process.env.LOG_TO_FILE === 'true'; const logFileName = process.env.LOG_FILE || 'app.log'; const transports = [ new winston_1.default.transports.Console() ]; if (logToFile) { transports.push(new winston_1.default.transports.File({ filename: logFileName })); } const defaultLogger = winston_1.default.createLogger({ level: logLevel, format: winston_1.default.format.combine(winston_1.default.format.errors({ stack: true }), winston_1.default.format.timestamp(), winston_1.default.format.printf(({ level, message, timestamp, stack }) => { const msg = typeof message === 'object' ? JSON.stringify(message) : message; return stack ? `${timestamp} [${level.toUpperCase()}] ${msg}\n${stack}` : `${timestamp} [${level.toUpperCase()}] ${msg}`; })), transports }); exports.default = defaultLogger;