UNPKG

@rs-r2d2/log4ts

Version:

A powerful, flexible logging library for TypeScript inspired by Apache Log4j, featuring colored output and emojis

49 lines (48 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = void 0; const LogLevel_1 = require("./LogLevel"); class Logger { constructor(name) { this.name = name; this.appenders = []; } addAppender(appender) { this.appenders.push(appender); } log(level, message, ...args) { const error = args.length > 0 && args[args.length - 1] instanceof Error ? args.pop() : undefined; const formattedMessage = args.length > 0 ? message.replace(/\{\}/g, () => String(args.shift())) : message; const event = { message: formattedMessage, level, timestamp: new Date(), loggerName: this.name, error }; this.appenders.forEach(appender => appender.append(event)); } trace(message, ...args) { this.log(LogLevel_1.LogLevel.TRACE, message, ...args); } debug(message, ...args) { this.log(LogLevel_1.LogLevel.DEBUG, message, ...args); } info(message, ...args) { this.log(LogLevel_1.LogLevel.INFO, message, ...args); } warn(message, ...args) { this.log(LogLevel_1.LogLevel.WARN, message, ...args); } error(message, ...args) { this.log(LogLevel_1.LogLevel.ERROR, message, ...args); } fatal(message, ...args) { this.log(LogLevel_1.LogLevel.FATAL, message, ...args); } } exports.Logger = Logger;