@akala/core
Version:
44 lines • 2.64 kB
JavaScript
import { LoggerMiddleware, LogLevels } from '../shared.js';
/**
* Example console-based logger implementation for demonstration
* @implements ILogger
*/
// @logger.service('console')
export class ConsoleLogger {
static instance = new ConsoleLogger();
currentLevel = LogLevels.info;
constructor() {
if (ConsoleLogger.instance)
return ConsoleLogger.instance;
this.error = new LoggerMiddleware((logLevel, namespace, format, ...args) => console.error(`${LogLevels[logLevel]}:[${namespace.join(':')}] ${format}`, ...args), LogLevels.error, '*');
this.warn = new LoggerMiddleware((logLevel, namespace, format, ...args) => console.warn(`${LogLevels[logLevel]}:[${namespace.join(':')}] ${format}`, ...args), LogLevels.warn, '*');
this.help = new LoggerMiddleware((logLevel, namespace, format, ...args) => console.info(`${LogLevels[logLevel]}:[${namespace.join(':')}] ${format}`, ...args), LogLevels.help, '*');
this.data = new LoggerMiddleware((logLevel, namespace, format, ...args) => console.log(`${LogLevels[logLevel]}:[${namespace.join(':')}] ${format}`, ...args), LogLevels.data, '*');
this.info = new LoggerMiddleware((logLevel, namespace, format, ...args) => console.info(`${LogLevels[logLevel]}:[${namespace.join(':')}] ${format}`, ...args), LogLevels.info, '*');
this.debug = new LoggerMiddleware((logLevel, namespace, format, ...args) => console.debug(`${LogLevels[logLevel]}:[${namespace.join(':')}] ${format}`, ...args), LogLevels.debug, '*');
this.prompt = new LoggerMiddleware((logLevel, namespace, format, ...args) => console.log(`${LogLevels[logLevel]}:[${namespace.join(':')}] ${format}`, ...args), LogLevels.prompt, '*');
this.verbose = new LoggerMiddleware((logLevel, namespace, format, ...args) => console.log(`${LogLevels[logLevel]}:[${namespace.join(':')}] ${format}`, ...args), LogLevels.verbose, '*');
this.input = new LoggerMiddleware((logLevel, namespace, format, ...args) => console.log(`${LogLevels[logLevel]}:[${namespace.join(':')}] ${format}`, ...args), LogLevels.input, '*');
this.silly = new LoggerMiddleware((logLevel, namespace, format, ...args) => console.log(`${LogLevels[logLevel]}:[${namespace.join(':')}] ${format}`, ...args), LogLevels.silly, '*');
}
error;
warn;
help;
data;
info;
debug;
prompt;
verbose;
input;
silly;
isEnabled(level) {
return level >= this.currentLevel;
}
setLevel(level) {
this.currentLevel = level;
}
getLevel() {
return this.currentLevel;
}
}
//# sourceMappingURL=console.js.map