You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
3.0 KiB
165 lines
3.0 KiB
'use strict';
|
|
|
|
var util = require('util');
|
|
var chalk = require('chalk');
|
|
|
|
var sections = [
|
|
'API',
|
|
'COL',
|
|
'SYS'
|
|
];
|
|
|
|
var types = [
|
|
'CON',
|
|
'CHR',
|
|
'UPD',
|
|
'BLK',
|
|
'TXS',
|
|
'STA',
|
|
'HIS',
|
|
'PIN'
|
|
];
|
|
|
|
var typeColors = {
|
|
'CON': chalk.reset.bold.yellow,
|
|
'CHR': chalk.reset.bold.red,
|
|
'UPD': chalk.reset.bold.green,
|
|
'BLK': chalk.reset.bold.blue,
|
|
'TXS': chalk.reset.bold.cyan,
|
|
'STA': chalk.reset.bold.red,
|
|
'HIS': chalk.reset.bold.magenta,
|
|
'PIN': chalk.reset.bold.yellow,
|
|
};
|
|
|
|
var verbosity = [
|
|
[],
|
|
['error'],
|
|
['error', 'warn', 'success'],
|
|
['info', 'error', 'warn', 'success', 'time', 'timeEnd']
|
|
];
|
|
|
|
var ENV_VERBOSITY = process.env.VERBOSITY || 2;
|
|
|
|
[
|
|
{
|
|
name: "info",
|
|
sign: '=i=',
|
|
signColor: chalk.blue,
|
|
messageColor: chalk.bold,
|
|
formatter: function (sign, message)
|
|
{
|
|
return [sign, message];
|
|
}
|
|
},
|
|
{
|
|
name: "success",
|
|
inherit: 'log',
|
|
sign: '=✓=',
|
|
signColor: chalk.green,
|
|
messageColor: chalk.bold.green,
|
|
formatter: function (sign, message)
|
|
{
|
|
return [sign, message];
|
|
}
|
|
},
|
|
{
|
|
name: "warn",
|
|
sign: '=!=',
|
|
signColor: chalk.yellow,
|
|
messageColor: chalk.bold.yellow,
|
|
formatter: function (sign, message)
|
|
{
|
|
return [sign, message];
|
|
}
|
|
},
|
|
{
|
|
name: "error",
|
|
sign: '=✘=',
|
|
signColor: chalk.red,
|
|
messageColor: chalk.bold.red,
|
|
formatter: function (sign, message)
|
|
{
|
|
return [sign, message];
|
|
}
|
|
},
|
|
{
|
|
name: "time",
|
|
sign: '=T=',
|
|
signColor: chalk.cyan,
|
|
messageColor: chalk.bold,
|
|
formatter: function (sign, message)
|
|
{
|
|
return [util.format.apply(util, [sign, message])];
|
|
}
|
|
},
|
|
{
|
|
name: "timeEnd",
|
|
sign: '=T=',
|
|
signColor: chalk.cyan,
|
|
messageColor: chalk.bold,
|
|
formatter: function (sign, message)
|
|
{
|
|
return [util.format.apply(util, [sign, message])];
|
|
}
|
|
}
|
|
].forEach( function (item)
|
|
{
|
|
if(item.inherit !== undefined)
|
|
console[item.name] = console[item.inherit];
|
|
|
|
var fn = console[item.name];
|
|
|
|
console[item.name] = function ()
|
|
{
|
|
if(verbosity[ENV_VERBOSITY].indexOf(fnName) === -1)
|
|
return false;
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
var type = null,
|
|
sign,
|
|
time;
|
|
var section = 'API';
|
|
var message = '';
|
|
|
|
if (args[0].indexOf(new Date().getFullYear()) >= 0)
|
|
{
|
|
time = args.splice(0, 1);
|
|
}
|
|
|
|
if (sections.indexOf(args[0]) >= 0)
|
|
{
|
|
section = args.splice(0, 1);
|
|
}
|
|
|
|
if (types.indexOf(args[0]) >= 0)
|
|
{
|
|
type = args.splice(0, 1);
|
|
}
|
|
|
|
sign = item.signColor.bold( '[' ) + chalk.reset.bold.white( section ) + item.signColor.bold( ']' );
|
|
|
|
if(type !== null)
|
|
sign = sign + " " + item.signColor.bold( '[' ) + typeColors[type](type) + item.signColor.bold( ']' );
|
|
|
|
if(item.name !== "time" && item.name !== "timeEnd")
|
|
{
|
|
time = (new Date()).toJSON().replace("T", " ").replace("Z", " ");
|
|
}
|
|
else
|
|
{
|
|
time = time.toString().replace("T", " ").replace("Z", "");
|
|
}
|
|
|
|
sign = chalk.reset.magenta(time) + sign;
|
|
|
|
if (typeof args[0] === 'object')
|
|
{
|
|
message = util.inspect( args[0], { depth: null, colors: true } );
|
|
}
|
|
else {
|
|
message = item.messageColor( util.format.apply(util, args) );
|
|
}
|
|
|
|
return fn.apply( this, item.formatter(sign, message) );
|
|
}
|
|
}); |