npm 包 winston2 使用教程

阅读时长 6 分钟读完

如果你在开发 Node.js 项目的过程中遇到了需要记录日志的需求,那么你可以关注一下 winston2,它是 Node.js 环境下的一个强大的日志记录库,提供了丰富的功能和可扩展性。

本篇文章将指导你如何使用 winston2 记录日志,并介绍一些使用技巧和示例代码。

安装

使用 npm 安装 winston2

基本使用

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

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

------------------- ------------
展开代码

以上代码中,我们使用了 createLogger 方法创建了一个日志记录器对象,然后指定了两个日志输出的目标:

  • 控制台输出:new winston.transports.Console()
  • 文件输出:new winston.transports.File({ filename: 'logfile.log' })

在示例代码中,我们使用了 logger.info 方法写入一条日志。winston2 支持以下的日志级别:

  • error
  • warn
  • info
  • http
  • verbose
  • debug
  • silly

你可以使用这些方法调用来写入对应级别的日志。

高级用法

格式化

你可以通过 format 方法来定制日志的格式。

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

----- ------ - ----------------------
    ------- ----------
    ----------- -
        --- -----------------------------
        --- ------------------------- --------- ------------- --
    -
---
展开代码

以上代码中,我们将 combine 方法传入多个可复用的格式化方法来生成了一个自定义的格式化对象。winston2 提供了许多默认的格式化方法,你可以通过 format 对象的属性来使用,例如 winston.format.timestamp() 获取当前的时间戳。

捕获错误

你可以在应用中一处捕捉所有未处理的错误并记录到日志中。示例代码如下:

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

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

------------------- ------------
----- --- --------- --------- --------- ------------
展开代码

在示例代码中,我们使用了 process.on 方法来监听 uncaughtException 事件,一旦发生错误,我们就使用 logger.error 方法来记录日志并输出错误信息。

追踪日志来源

你可以通过在日志记录器中添加 Meta 来记录日志来源。

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

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

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

------------------- ------------
展开代码

以上代码中,我们定义了 InitLoggerMeta 函数来给日志记录器添加 Meta,并在初始化日志记录器时调用该函数。

之后我们在 log 函数中将 logger[level](message, { Meta: fullMeta }); 替换了 logger.log(level, message, additional);,这样我们就可以在追踪日志来源时使用 Meta 进行记录了。

结语

以上就是使用 winston2 记录 Node.js 项目日志的基本用法和一些高级技巧。希望这篇文章可以帮助你更好地完成日志记录的工作。附完整示例代码:

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

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

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

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

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

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

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

----- --- --------- --------- --------- ------------
展开代码

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

纠错
反馈

纠错反馈