Winston 是 Node.js 中一个流行的日志框架,而 winston-color 是它的一个扩展包,能够给输出的日志增添颜色,方便查看和诊断。在这篇教程中,我们将介绍如何使用这个 npm 包。
安装
安装 winston-color 很简单,只需要在命令行中输入:
npm install winston-color
既可完成安装。
使用
在代码中引入 winston-color 模块:
const winston = require('winston'); const { Colorizer, Console } = require('winston-color');
然后创建一个新的 winston logger:
const logger = winston.createLogger({ level: 'info', transports: [new Console()] });
注意,在这里我们使用了 winston 的默认 Console transport。如果你使用了其它的 transport,也可以在它们的参数中指定 colorizer 如下:
const logger = winston.createLogger({ level: 'info', transports: [ new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }), new Console({ colorize: true, prettyPrint: true }) ] });
然后在输出日志时,调用 log 方法,并在第二个参数中传递要输出的信息,例如:
logger.log('info', 'Hello, world!');
输出的文本会自动加上颜色,如下:
颜色选项
默认情况下,winston-color 将根据日志级别自动选择颜色,如下:
error
红色warn
黄色info
绿色verbose
蓝色debug
灰色silly
洋红色
如果您希望使用不同的颜色,可以自定义 colorizer。例如:
-- -------------------- ---- ------- ----- ------ - - ------ ------ ----- --------- ----- -------- -------- ------- ------ ------- ------ --------- -- ----- --------- - --- ----------- ------ --- ----- ------ - ---------------------- ----------- ---- --------- --------- ----- --------- --- --- ------------------ ------- ---------
上面的代码中,我们使用了一个自定义的颜色对象,并将其传递给了 Colorizer 构造函数。利用这个自定义的对象,我们可以指定颜色。
注意,虽然以上代码只传递给 Console transport 了一个 colorizer,但是也会影响到其它的 transport,例如 File transport。
其它配置项
除了颜色,winston-color 还可以配置其它内容,例如不同的 log format。
我们可以在创建 logger 时传入不同的 format,例如:
-- -------------------- ---- ------- ----- ------ - ---------------------- ------ ------- ------- ----------------------- ------------ --------------------------- -------------------------- -- ------------------ --------------- ----------------- -- ----------- ---- ---------- ---
其中,我们使用了 winston 的 combine 函数,配合 colorizer、timestamp 和 printf 三个 format 实现了自定义的 log format。
需要注意的是,如果您使用了自定义的 format,colorizer 必须放在第一位,确保它会被正确应用。
结语
winston-color 是一个非常有用的扩展包,能够增强开发者的日志查看与诊断效率。希望这篇教程能够帮助您快速上手 winston-color,更加高效地开展工作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5ef16a56efcef77a054b762b