npm 包 bunyan-loopback-stream 使用教程

阅读时长 7 分钟读完

bunyan-loopback-stream 是一个 Node.js 日志库 Bunyan 的输出流插件,它可以将日志数据发送到 LoopBack 应用程序的日志组件里。在本文中,我们将了解如何使用 bunyan-loopback-stream,以及它的一些高级用法。

安装

你可以使用 npm 安装 bunyan-loopback-stream:

基础用法

在项目中,你需要使用 bunyan 创建一个日志记录器,但是 bunyan 并没有对应的输出流可以将日志发送到 LoopBack 应用程序的日志组件。这时候就需要使用 bunyan-loopback-stream 这个插件。具体来说,你可以像这样将 bunyan-loopback-stream 关联到已有的 bunyan 实例中:

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

在上述代码中,app 是一个 LoopBack 应用程序实例。bunyanLoopBackStream 将返回一个可写的流,它将日志输出到 app.log() 方法中。

同时,你也可以在 LoopBack 应用程序中的日志组件里收到日志,而且这大大简化了应用日志的收集和管理:

高级选项

收集 HTTP 请求头和响应头信息

如果要捕获所有 HTTP 请求和响应的标头信息,可以将 bunyan-loopback-stream 调整为监听 express 服务器的“pipe”事件。这是使用高级参数进行配置的,例如:

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

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

在上面的配置中,我们可以观察以下不同类型的配置:

  • server - 这里和前面相同,是 LoopBack 应用程序实例。
  • level - 日志级别,这里为 trace 级别,用以覆盖默认的 info 级别。
  • parsers - 这是一个可选选项数组,其中包含所有可用于自定义解析传入的数据的解析器。在此示例中,我们定义了一个名为 “redact-auth”的解析器,该解析器会替换 authorization 响应头中的内容,以便在记录时不会“泄漏”认证数据。
  • excludes - 这是一个可选的正则表达式数组,用于从请求和响应中删除指定名称的标头(例如密码和信用卡号)。

过滤日志

可以使用拦截器函数来更详细地控制日志输出。例如,下面的示例仅在日志消息为 "Info" 或 "Warning" 时才将其发送到 LoopBack 日志记录器:

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

在这个例子中,我们定义了一个拦截器来过滤日志级别,日志消息等于 "Info""Warning" 时将被记录到 LoopBack 日志记录器。

小结

bunyan-loopback-stream 这个 npm 包非常有用,特别是在需要将日志数据发送到 LoopBack 应用程序的日志组件时。在本文中,我们讨论了如何安装和使用 bunyan-loopback-stream, 以及一些高级用法。

如果你想深入了解 bunyan 和 bunyan-loopback-stream,可以参考它们的 GitHub 页面。

示例代码

下面是使用 bunyan-loopback-stream 的示例代码:

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

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

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

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

纠错
反馈