UNPKG

@akala/core

Version:
44 lines 2.64 kB
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