github.com/igggame/nebulas-go@v2.1.0+incompatible/nf/nvm/v8/lib/1.0.0/console.js (about)

     1  // Copyright (C) 2017 go-nebulas authors
     2  //
     3  // This file is part of the go-nebulas library.
     4  //
     5  // the go-nebulas library is free software: you can redistribute it and/or modify
     6  // it under the terms of the GNU General Public License as published by
     7  // the Free Software Foundation, either version 3 of the License, or
     8  // (at your option) any later version.
     9  //
    10  // the go-nebulas library is distributed in the hope that it will be useful,
    11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13  // GNU General Public License for more details.
    14  //
    15  // You should have received a copy of the GNU General Public License
    16  // along with the go-nebulas library.  If not, see <http://www.gnu.org/licenses/>.
    17  //
    18  
    19  'use strict';
    20  
    21  function Console() {}
    22  
    23  function log(...args) {
    24      var level = args.shift();
    25      if (typeof (level) != 'number') {
    26          throw 'level must be number.';
    27      }
    28  
    29      var msg = '';
    30      for (var i = 0; i < args.length - 1; i++) {
    31          msg += format(args[i]) + ' ';
    32      }
    33      msg += format(args[args.length - 1]);
    34  
    35      _native_log(level, msg);
    36  }
    37  
    38  function format(obj) {
    39      if (typeof (obj) == 'object') {
    40          return JSON.stringify(obj);
    41      }
    42      return obj;
    43  }
    44  
    45  [
    46      ['debug', 1],
    47      ['warn', 2],
    48      ['info', 3],
    49      ['log', 3],
    50      ['error', 4]
    51  ].forEach(function (val) {
    52      Console.prototype[val[0]] = log.bind(null, val[1]);
    53  });
    54  
    55  module.exports = new Console();
    56  module.exports.Console = Console;