UNPKG

@0xtld/tair-node

Version:

A Node.js package for Tair functionality with configuration, core, and helper modules.

53 lines (52 loc) 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logger = void 0; const tslib_1 = require("tslib"); const winston_1 = tslib_1.__importDefault(require("winston")); const colors_1 = require("./colors"); // Initialize color theme const colors = new colors_1.ColorTheme(); const customLevels = { levels: { error: 0, warn: 1, info: 2, success: 3, custom: 4, }, colors: { error: 'red', warn: 'yellow', info: 'cyan', success: 'green', custom: 'magenta', }, }; const padLevel = (level) => { const padLength = 7; return level.toUpperCase().padEnd(padLength); }; const customFormat = winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston_1.default.format.printf(({ timestamp, level, message }) => { // Map level colors const levelColors = { error: colors.colors.error, warn: colors.colors.warning, info: colors.colors.info, success: colors.colors.success, custom: colors.colors.highlight, }; // Color the timestamp using dim style const coloredTimestamp = `${colors.baseColors.dim}${timestamp}${colors.colors.reset}`; // Color the level const coloredLevel = `${levelColors[level]}${padLevel(level)}${colors.colors.reset}`; return `${coloredTimestamp} | ${coloredLevel} | ${message}`; })); // Create logger instance const logger = winston_1.default.createLogger({ levels: customLevels.levels, level: 'custom', format: customFormat, transports: [new winston_1.default.transports.Console()], }); exports.logger = logger; winston_1.default.addColors(customLevels.colors);