UNPKG

@akala/core

Version:
82 lines 3.67 kB
/** * Centralized logging system with namespace-based routing * @packageDocumentation */ import { LogLevels } from './shared.js'; import { process } from '../middlewares/shared.js'; import { LoggerRoute } from './sync/route.js'; import { LoggerRouteAsync } from './async/route.js'; export * from './shared.js'; export * from './sync/console.js'; export * from './sync/debug.js'; export * from './sync/multicast.js'; export * from './sync/route.js'; export * from './sync/wrapper.js'; export * from './async/web-stream.js'; export * from './async/sync.js'; export * from './async/multicast.js'; export * from './async/route.js'; export * from './async/wrapper.js'; export class LoggerWrapper { logger; maxLevel; process(log, ...values) { try { return process(log, this.maxLevel, this.namespaces, ...values); } catch (e) { if (e) throw e; throw new Error('no logger could handle this message. Are you missing to call configureLogging ?', { cause: e }); } } tryProcess(log, ...values) { try { return process(log, this.maxLevel, this.namespaces, ...values); } catch (e) { if (e) throw e; } } error(...values) { return this.process(this.logger.error, ...values); } warn(...values) { return this.process(this.logger.warn, ...values); } help(...values) { return this.process(this.logger.help, ...values); } data(...values) { return this.process(this.logger.data, ...values); } info(...values) { return this.process(this.logger.info, ...values); } debug(...values) { return this.process(this.logger.debug, ...values); } prompt(...values) { return this.process(this.logger.prompt, ...values); } verbose(...values) { return this.process(this.logger.verbose, ...values); } input(...values) { return this.process(this.logger.input, ...values); } silly(...values) { return this.process(this.logger.silly, ...values); } tryError(...values) { return this.tryProcess(this.logger.error, ...values); } tryWarn(...values) { return this.tryProcess(this.logger.warn, ...values); } tryHelp(...values) { return this.tryProcess(this.logger.help, ...values); } tryData(...values) { return this.tryProcess(this.logger.data, ...values); } tryInfo(...values) { return this.tryProcess(this.logger.info, ...values); } tryDebug(...values) { return this.tryProcess(this.logger.debug, ...values); } tryPrompt(...values) { return this.tryProcess(this.logger.prompt, ...values); } tryVerbose(...values) { return this.tryProcess(this.logger.verbose, ...values); } tryInput(...values) { return this.tryProcess(this.logger.input, ...values); } trySilly(...values) { return this.tryProcess(this.logger.silly, ...values); } constructor(logger, maxLevel, namespace) { this.logger = logger; this.maxLevel = maxLevel; this.namespaces = namespace?.split(':') ?? []; } namespaces; pipe(logger) { return this.logger.pipe(logger); } use(namespace, logLevel) { namespace.split(':').reduce((previous, current) => previous.use(current), this.logger); // const route = this.logger.use(namespace) as TLogger; return new LoggerWrapper(this.logger, logLevel ?? this.maxLevel, namespace); } isEnabled(logLevel) { return logLevel <= this.maxLevel; } } export const logger = new LoggerWrapper(new LoggerRoute('*'), LogLevels.info); export const asyncLogger = new LoggerWrapper(new LoggerRouteAsync('*'), LogLevels.info); //# sourceMappingURL=index.browser.js.map