简介
winston-singleton 是 Node.js 的一个日志模块,可以用于方便地记录 Node.js 应用程序的日志。它可以输出到控制台或文件,也支持多个日志等级、自定义格式和日志转发等功能。这个模块使用方便,可以快速地集成到 Node.js 应用程序中。
安装
在 Node.js 工程中,可以使用 npm 快速安装 winston 和 winston-singleton:
npm install winston winston-singleton --save
使用
在 Node.js 工程中,可以使用以下代码初始化日志模块 winston,并写入第一条日志:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- - ------------- ------- ---------- - - -------- ----- - -------- ---------- ------ - - ------- ----- -------- - --------- ------ -------- --------- -- -- - ------ ------------- ---------- ------------ --- ----- ------- - - ----- - ------ ------- --------- ----------------- ----------------- ----- -------- -------- -- --- --------- -- ------- -------- ------------ -------- - -- -------- - ------ -------- ----------------- ----- ------- -------- ------------ -------- - - -- ----- ------ - -------------- ----------- - --- ------------------------------ --- ----------------------------------- -- ------------ ----- --- ------------------- ------- -------------
上面的代码初始化了一个 winston 的日志对象 logger,并设置了两个输出目标:一个是输出到 ./logs/app.log 文件,一个是输出到控制台。
winston-singleton 中 singleton 意味着只需要初始化一次,以后就可以随时调用,因此,在实际工程中建议将上面的代码封装到一个独立的 JavaScript 文件中,例如 common/logger.js 中:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- - ------------- ------- ---------- - - -------- ----- - -------- ---------- ------ - - ------- ----- -------- - --------- ------ -------- --------- -- -- - ------ ------------- ---------- ------------ --- ----- ------- - - ----- - ------ ------- --------- ----------------- ----------------- ----- -------- -------- -- --- --------- -- ------- -------- ------------ -------- - -- -------- - ------ -------- ----------------- ----- ------- -------- ------------ -------- - - -- ----- ------ - -------------- ----------- - --- ------------------------------ --- ----------------------------------- -- ------------ ----- --- -------------- - -------
在其他 JavaScript 文件中,可以简单地使用以下代码引用 winston-singleton:
const logger = require('./common/logger'); logger.info('Hello, Winston Singleton!');
功能
- 日志等级
winston-singleton 支持几个标准的日志等级:error、warn、info、http、verbose、debug、silly。在初始化 logger 对象时,可以指定 console 输出和 file 输出各自的日志等级。例如,以下代码将日志等级分别设置为 error 和 verbose:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- - ------------- ------- ---------- - - -------- ----- - -------- ---------- ------ - - ------- ----- -------- - --------- ------ -------- --------- -- -- - ------ ------------- ---------- ------------ --- ----- ------- - - ----- - ------ -------- --------- ----------------- ----------------- ----- -------- -------- -- --- --------- -- ------- -------- ------------ -------- - -- -------- - ------ ---------- ----------------- ----- ------- -------- ------------ -------- - - -- ----- ------ - -------------- ----------- - --- ------------------------------ --- ----------------------------------- -- ------------ ----- ---
- 格式化
winston-singleton 支持自定义输出格式。您可以使用 format 模块指定日志输出格式,例如上面的示例使用 timestamp 和 printf 函数来定制日志格式。
- 转发
winston-singleton 支持将同一个日志同时输出到多个目标。您可以在初始化 logger 对象时使用多个 transports 参数来指定输出目标。例如下面的代码同时将日志输出到两个控制台:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- - ------------- ------- ---------- - - -------- ----- - -------- ---------- ------ - - ------- ----- -------- - --------- ------ -------- --------- -- -- - ------ ------------- ---------- ------------ --- ----- ------- - - --------- - ------ -------- ----------------- ----- ------- -------- ------------ -------- - -- --------- - ------ -------- ----------------- ----- ------- -------- ------------ -------- - - -- ----- ------ - -------------- ----------- - --- ------------------------------------- --- ------------------------------------ -- ------------ ----- ---
总结
在 Node.js应用程序中,日志记录是一个很重要的环节。winston-singleton 模块是 Node.js 中一个强大的、易用的日志模块。此模块提供了快速配置日志级别、格式化和转发等基本功能,方便开发者使用。winston-singleton 的这些特点使它成为一个值得推荐的日志模块。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671128dd3466f61ffe48c