All files / server/plugins/log index.js

100% Statements 15/15
83.33% Branches 5/6
100% Functions 4/4
100% Lines 15/15

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 5227x   27x                       27x                           102x 816x   102x 102x 102x   102x 102x 816x 112x       18x   112x           27x  
const log = require('npmlog');
 
const valid = [
  'debug',
  'info',
  'notice',
  'warning',
  'error',
  'critical',
  'alert',
  'emergency'
];
 
// Log plugin
const plugin = {
  name: 'log',
  options: {
    __root: 'level',
    level: {
      default: 'info',
      type: String,
      enum: valid
    },
    report: {
      default: process.stdout
    }
  },
  init: ctx => {
    valid.forEach((level, n) => {
      log.addLevel(level, n);
    });
    log.level = 'info';
    Eif (ctx.options.log.level) {
      log.level = ctx.options.log.level;
    }
    ctx.log = {};
    valid.forEach(type => {
      ctx.log[type] = content => {
        if (
          ctx.options.log.report &&
          typeof ctx.options.log.report === 'function'
        ) {
          ctx.options.log.report(content, type);
        }
        log.log(type, '', content);
      };
    });
  }
};
 
module.exports = plugin;