3 var loglevel = require('loglevel');
4 var chalk = require('chalk');
8 module.exports = getLogger;
10 function getLogger() {
11 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
12 _ref$level = _ref.level,
13 level = _ref$level === undefined ? getDefaultLevel() : _ref$level,
14 _ref$prefix = _ref.prefix,
15 prefix = _ref$prefix === undefined ? '' : _ref$prefix;
17 if (loggers[prefix]) {
18 return loggers[prefix];
20 var coloredPrefix = prefix ? `${chalk.dim(prefix)} ` : '';
22 TRACE: chalk.dim('[TRACE]'),
23 DEBUG: chalk.cyan('[DEBUG]'),
24 INFO: chalk.blue('[INFO]'),
25 WARN: chalk.yellow('[WARN]'),
26 ERROR: chalk.red('[ERROR]')
29 var logger = loglevel.getLogger(`${prefix}-logger`);
31 // this is the plugin "api"
32 var originalFactory = logger.methodFactory;
33 logger.methodFactory = methodFactory;
35 var originalSetLevel = logger.setLevel;
36 logger.setLevel = setLevel;
37 logger.setLevel(level);
38 loggers[prefix] = logger;
41 function methodFactory() {
42 for (var _len = arguments.length, factoryArgs = Array(_len), _key = 0; _key < _len; _key++) {
43 factoryArgs[_key] = arguments[_key];
46 var logLevel = factoryArgs[0];
48 var rawMethod = originalFactory.apply(undefined, factoryArgs);
50 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
51 args[_key2] = arguments[_key2];
54 return rawMethod.apply(undefined, [`${coloredPrefix}${levelPrefix[logLevel.toUpperCase()]}:`].concat(args));
58 function setLevel(levelToSetTo) {
59 var persist = false; // uses browser localStorage
60 return originalSetLevel.call(logger, levelToSetTo, persist);
64 function getDefaultLevel() {
65 var logLevel = process.env.LOG_LEVEL;
67 if (logLevel === 'undefined' || !logLevel) {