npm 包 winston-wingman 使用教程

阅读时长 5 分钟读完

在前端开发中,日志是非常重要的一环。而在 Node.js 应用程序中,winston 常被用作是日志工具。winston-wingman 是一组 winston 的针对 Node.js 的扩展工具。这些扩展工具可以减轻一些 Node.js 本身日志功能的缺陷,而且完全兼容 winston 的API接口。

安装

在使用 winston-wingman 之前,我们必须先安装它。

使用 npm 进行全局安装:

或者在项目中直接安装:

使用

winston-wingman 的使用方式与 winston 一样,我们可以通过 require 方式引入。例如:

Logging Levels

在 winston 中,日志级别有以下七个。从低到高依次为:

  • silly
  • debug
  • verbose
  • info
  • warn
  • error
  • fatal

日志级别越高,记录的信息越详细。例如设置级别为 info 时,会记录所有的 info、warn、error 和 fatal 日志。

winston-wingman 在此之上添加了一个级别 silent,表示完全禁用日志记录。也就是说,设置日志级别为 silent 时相当于关闭了日志记录。

Transport

winston-wingman 支持的 Transport 有两种。

Console Transport

console 是基于文本输出的 Transport,也是默认的 Transport。

File Transport

如下是一个使用 File Transport 的例子。

-- -------------------- ---- -------
----- ------ - ----------------------
  ----------- ---- -------------------------
    ------ --------
    --------- ------------------
    ----------------- -----
    ------------ -----
    -------- -------- -- ---
    --------- -
  ---
---

在上面的例子中,我们设置了 filename、maxsize 和 maxFiles。

  • filename:指定日志文件的名称。如果不存在,则尝试创建该文件。否则直接写入。当然,它还支持路径,例如 logs/application.log
  • maxsize:文件大小限制。如果日志文件达到限制,则重新生成一个新文件。通常,这将帮助您实现日志的轮换。
  • maxFiles:可以定义保留历史日志文件的总个数。这可以通过 rotation 的方式来实现。

或者,使用默认的方式:

日志输出格式

winston-wingman 也支持自定义日志输出格式,例如:

-- -------------------- ---- -------
----- ------ - ----------------------
  ------- -----------------------
    ---------------------------
    ---------------------
  --
  ----------- -
    --- ----------------------------
      ------ ------
    ---
  --
---

当然,除了 JSON 格式之外,winston 还支持其他的格式。例如,您也可以使用 winston.format.printf 方法自定义输出格式:

-- -------------------- ---- -------
----- ------ - ----------------------
  ------- -----------------------
    ---------------------------
    --------------------------
    -------------------------- -- -------------------- -------------- -----------------
  --
  ----------- -
    --- ----------------------------
      ------ ------
    ---
  --
---

在上例中,我们添加了一个 timestamp 字段,在传入 log 的时候会自动添加日期时间。

总结

winston-wingman 是 Node.js 项目中非常优秀的日志工具,兼容 winston 的API接口并提供了许多扩展,可以帮助 Node.js 开发者解决 Node.js 本身的日志功能的缺陷。

自定义日志格式和级别配合两个现成的 Transport,通常就足以适应大部分情况。另外,我们还可以为 Transport 定义每日循环和备份机制,以便进行日志轮换,以及配置红色独角兽,使日志信息更加醒目。

最后,希望您在 Node.js 项目日志记录过程中, 合理使用 winston-wingman 工具,记录项目异常,便于日后开发维护。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006710e8dd3466f61ffe209

纠错
反馈