# 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;