@boost/log
Version:
Lightweight level based logging system.
46 lines (44 loc) • 981 B
JavaScript
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