@rs-r2d2/log4ts
Version:
A powerful, flexible logging library for TypeScript inspired by Apache Log4j, featuring colored output and emojis
22 lines (21 loc) • 900 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PatternLayout = void 0;
const LogLevel_1 = require("../core/LogLevel");
const ColorConfig_1 = require("../core/ColorConfig");
class PatternLayout {
constructor(pattern = '[%d] [%p] %c - %m', colorConfig) {
this.pattern = pattern;
this.colorConfig = colorConfig || new ColorConfig_1.ColorConfig();
}
format(event) {
const baseMessage = this.pattern
.replace('%d', event.timestamp.toISOString())
.replace('%p', (0, LogLevel_1.getLevelName)(event.level))
.replace('%c', event.loggerName)
.replace('%m', event.message);
const coloredMessage = this.colorConfig.formatMessage(event.level, baseMessage);
return coloredMessage + (event.error ? '\n' + event.error.stack : '');
}
}
exports.PatternLayout = PatternLayout;