nodejs自定义一个打印模块

代码展示

/**
* @Author: KjPrime
* @description:  打印模块
* - 打印正确和打印错误
* - 打印行数和打印文件名
* - 未完成 将打印结果存储
*/
let c = {
	'end'       : '\x1B[0m', //
    'bright'    : '\x1B[1m', // 亮色
    'grey'      : '\x1B[2m', // 灰色
    'italic'    : '\x1B[3m', // 斜体
    'underline' : '\x1B[4m', // 下划线
    'reverse'   : '\x1B[7m', // 反向
    'hidden'    : '\x1B[8m', // 隐藏
    'black'     : '\x1B[30m', // 黑色
    'red'       : '\x1B[31m', // 红色
    'green'     : '\x1B[32m', // 绿色
    'yellow'    : '\x1B[33m', // 黄色
    'blue'      : '\x1B[34m', // 蓝色
    'magenta'   : '\x1B[35m', // 品红
    'cyan'      : '\x1B[36m', // 青色
    'white'     : '\x1B[37m', // 白色
    'blackBG'   : '\x1B[40m', // 背景色为黑色
    'redBG'     : '\x1B[41m', // 背景色为红色
    'greenBG'   : '\x1B[42m', // 背景色为绿色
    'yellowBG'  : '\x1B[43m', // 背景色为黄色
    'blueBG'    : '\x1B[44m', // 背景色为蓝色
    'magentaBG' : '\x1B[45m', // 背景色为品红
    'cyanBG'    : '\x1B[46m', // 背景色为青色
    'whiteBG'   : '\x1B[47m', // 背景色为白色
};
let color = function(colour, msg){
	return `${c[colour]}${msg}${c.end}`;
};

let date = function(){
	return `${new Date().getFullYear()}-${new Date().getMonth() + 1}-${new Date().getDate()}/${new Date().toLocaleTimeString()}`;
};

var getStack = function() { // 参考网上的
    var orig = Error.prepareStackTrace; // 存储Error对象
    Error.prepareStackTrace = function(_, stack) { return stack; };
    var err = new Error;
    var stack = err.stack;
    Error.prepareStackTrace = orig; // 复原Error对象 
    return stack[2]; // stack[0]为当前函数, stack[1]为调用者,stack[2]为上层调用者 以此类推
	// 	getPosition 得到x轴位置 // getFunction // getFunctionName // getFileName // getLineNumber
};

let message = {
	log(...msg) {
		console.log(color("green", date()), "-", ...msg, "-", color("green", `(${getStack().getFileName()}:${getStack().getLineNumber()})`));
	},
	err(...msg) {
		console.log(color("red", date()), "-", ...msg, "-", color("red", `(${getStack().getFileName()}:${getStack().getLineNumber()})`));
	}
};

module.exports = message;

注:将代码保存到一个文件中,再引用改模块,这样打印出来的行号和文件名才正常。

结果展示

message

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值