You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/* MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra */
"use strict";
const { SyncBailHook } = require("tapable"); const { Logger } = require("./Logger"); const createConsoleLogger = require("./createConsoleLogger");
/** @type {createConsoleLogger.LoggerOptions} */ const currentDefaultLoggerOptions = { level: "info", debug: false, console }; let currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions);
/** * @param {string} name name of the logger * @returns {Logger} a logger */ module.exports.getLogger = name => new Logger( (type, args) => { if (module.exports.hooks.log.call(name, type, args) === undefined) { currentDefaultLogger(name, type, args); } }, childName => module.exports.getLogger(`${name}/${childName}`) );
/** * @param {createConsoleLogger.LoggerOptions} options new options, merge with old options * @returns {void} */ module.exports.configureDefaultLogger = options => { Object.assign(currentDefaultLoggerOptions, options); currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions); };
module.exports.hooks = { log: new SyncBailHook(["origin", "type", "args"]) };
|