有没有办法让node.js以彩色输出console.error和console.warn消息?
我希望我可以将所有console.error消息设置为红色,将console.warn消息设置为黄色,将console.log消息设置为默认颜色。
我四处寻找node.exe的命令行参数或环境变量选项,但我没有看到任何内容。也许彩色的控制台消息是我必须以不同的方式选择的?
我想要一个适用于Windows 10的解决方案,以防万一。
答案 0 :(得分:2)
您可以使用颜色包。
https://www.npmjs.com/package/colors
只需使用包装器来完成格式化的方式
module.exports = {
error: message => console.log(message.red),
warn: message => console.log(message.yellow),
}
您还可以使用像pino这样的日志库来着色消息中的日志级别。
https://github.com/pinojs/pino
编辑:显示基本的记录器文件实现
my-custom-logger.js
module.exports = {
error: message => console.log(message.red),
warn: message => console.log(message.yellow),
info: message => console.log(message.green),
debug: message => console.log(message.blue),
};
一些-file.js
const logger = require('./my-custom-logger);
logger.error('Something went very wrong');
logger.warn('I am just a warning');
logger.info('This is informational');
logger.debug('Let us dig a little deeper');
将其隐藏在自己的my-custom-logger.js
文件后面的好处是,您可以在不更改所有代码的情况下替换幕后实现。
我强烈建议深入研究pino,bunyan或winston作为日志框架。有很多好处,但我认为最大的两个好处是:
JSON.stringify(object)
答案 1 :(得分:0)
您可以将console
中的方法设置为调用基础方法(您需要存储)的包装函数,但将它们换成颜色。
请注意,您也可以将对象传递给console
方法,这些方法难以处理。
const actualError = console.error;
console.error = function(...args) {
actualError(...args.map(a => typeof a === 'string' ? colorize(a) : a);
};