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;