@0xtld/tair-node
Version:
A Node.js package for Tair functionality with configuration, core, and helper modules.
53 lines (52 loc) • 1.74 kB
JavaScript
;
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);