redis-smq-common
Version:
RedisSMQ Common Library provides many components that are mainly used by RedisSMQ and RedisSMQ Monitor.
59 lines • 2.17 kB
JavaScript
import { ConsoleMessageFormatter } from './console-message-formatter.js';
import { EConsoleLoggerLevel } from './types/index.js';
export class ConsoleLogger {
logLevel;
formatter;
constructor(options = {}) {
const { includeTimestamp = true, colorize = true, logLevel = EConsoleLoggerLevel.INFO, dateFormat, } = options;
this.logLevel =
typeof logLevel === 'number' ? logLevel : EConsoleLoggerLevel[logLevel];
this.formatter = new ConsoleMessageFormatter({
includeTimestamp,
colorize,
dateFormat,
});
}
shouldLog(level) {
return level >= this.logLevel;
}
isFormatted(message) {
return this.formatter.isFormatted(message);
}
debug(message, ...params) {
if (!this.shouldLog(EConsoleLoggerLevel.DEBUG))
return;
if (this.isFormatted(message)) {
return console.debug(message, ...params);
}
const formattedMessage = this.formatter.format('DEBUG', message);
console.debug(formattedMessage, ...params);
}
error(message, ...params) {
if (!this.shouldLog(EConsoleLoggerLevel.ERROR))
return;
if (this.isFormatted(message)) {
return console.error(message, ...params);
}
const formattedMessage = this.formatter.format('ERROR', message);
console.error(formattedMessage, ...params);
}
info(message, ...params) {
if (!this.shouldLog(EConsoleLoggerLevel.INFO))
return;
if (this.isFormatted(message)) {
return console.info(message, ...params);
}
const formattedMessage = this.formatter.format('INFO', message);
console.info(formattedMessage, ...params);
}
warn(message, ...params) {
if (!this.shouldLog(EConsoleLoggerLevel.WARN))
return;
if (this.isFormatted(message)) {
return console.warn(message, ...params);
}
const formattedMessage = this.formatter.format('WARN', message);
console.warn(formattedMessage, ...params);
}
}
//# sourceMappingURL=console-logger.js.map