npm 包 winston-singleton 使用教程

阅读时长 8 分钟读完

简介

winston-singleton 是 Node.js 的一个日志模块,可以用于方便地记录 Node.js 应用程序的日志。它可以输出到控制台或文件,也支持多个日志等级、自定义格式和日志转发等功能。这个模块使用方便,可以快速地集成到 Node.js 应用程序中。

安装

在 Node.js 工程中,可以使用 npm 快速安装 winston 和 winston-singleton:

使用

在 Node.js 工程中,可以使用以下代码初始化日志模块 winston,并写入第一条日志:

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

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

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

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

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

上面的代码初始化了一个 winston 的日志对象 logger,并设置了两个输出目标:一个是输出到 ./logs/app.log 文件,一个是输出到控制台。

winston-singleton 中 singleton 意味着只需要初始化一次,以后就可以随时调用,因此,在实际工程中建议将上面的代码封装到一个独立的 JavaScript 文件中,例如 common/logger.js 中:

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

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

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

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

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

在其他 JavaScript 文件中,可以简单地使用以下代码引用 winston-singleton:

功能

  1. 日志等级

winston-singleton 支持几个标准的日志等级:error、warn、info、http、verbose、debug、silly。在初始化 logger 对象时,可以指定 console 输出和 file 输出各自的日志等级。例如,以下代码将日志等级分别设置为 error 和 verbose:

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

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

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

----- ------ - --------------
  ----------- -
    --- ------------------------------
    --- -----------------------------------
  --
  ------------ -----
---
  1. 格式化

winston-singleton 支持自定义输出格式。您可以使用 format 模块指定日志输出格式,例如上面的示例使用 timestamp 和 printf 函数来定制日志格式。

  1. 转发

winston-singleton 支持将同一个日志同时输出到多个目标。您可以在初始化 logger 对象时使用多个 transports 参数来指定输出目标。例如下面的代码同时将日志输出到两个控制台:

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

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

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

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

总结

在 Node.js应用程序中,日志记录是一个很重要的环节。winston-singleton 模块是 Node.js 中一个强大的、易用的日志模块。此模块提供了快速配置日志级别、格式化和转发等基本功能,方便开发者使用。winston-singleton 的这些特点使它成为一个值得推荐的日志模块。

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

纠错
反馈