UNPKG

@boost/log

Version:

Lightweight level based logging system.

46 lines (44 loc) 981 B
import { isObject } from '@boost/common'; import { LOG_LEVELS } from './constants.mjs'; import { Logger } from './Logger.mjs'; function pipeLog(logger, level) { return (...args) => { let metadata = {}; let message = ''; if (isObject(args[0])) { metadata = args.shift(); } message = args.shift(); logger.log({ args, level, message, metadata }); }; } /** * Create and return a logger with any configured transports. */ function createLogger(options) { const logger = new Logger(options); const log = pipeLog(logger); LOG_LEVELS.forEach(level => { Object.defineProperty(log, level, { value: pipeLog(logger, level) }); }); Object.defineProperty(log, 'disable', { value: () => { logger.disable(); } }); Object.defineProperty(log, 'enable', { value: () => { logger.enable(); } }); return log; } export { createLogger }; //# sourceMappingURL=createLogger.mjs.map