npm 包 @horizonfour/hapi-logger 使用教程

阅读时长 14 分钟读完

概述

@horizonfour/hapi-logger 是一个 Hapi 框架下的插件,用于记录 HTTP 请求日志。它可以帮助开发者快速地记录请求相关信息,方便调试及日志分析。

安装

使用 npm 进行安装:

使用

安装后,只需要在 Hapi 服务器实例上注册插件即可:

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

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

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

--------

@horizonfour/hapi-logger 支持添加多个指标来记录请求信息,常用的指标有:

  • method:请求方法
  • url:请求路径
  • query:查询参数
  • headers:请求头
  • payload:请求体
  • responseTime:响应时间
  • statusCode:响应状态码
  • responsePayload:响应体

在 Hapi 服务器实例的路由配置上,只要添加 pre 处理函数即可开始记录请求信息:

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

需要记录哪些指标,可以在 pre 处理函数中通过 request.plugins 增加新的属性:

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

配置

@horizonfour/hapi-logger 提供了丰富的配置选项来满足不同的需求。

reporters

用于指定记录器和事件过滤器。记录器指定记录输出方式,事件过滤器则指定需要记录的事件类型。

默认的记录器为:

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

对应的事件类型为:log、error、response。

如果需要添加自定义的记录器,需要在 options 中通过 reporters 属性进行配置。

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

format

用于指定数据格式。默认格式为 JSON。

如果需要自定义数据格式,可以通过 options 中的 format 属性进行配置。

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

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

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

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

options

用于指定通用配置选项,包括以下属性:

  • exclude: function,用于判断是否需要排除某个请求。可以指定请求的 pathmethod,符合条件的请求将不会被记录。
  • requestFilter: function,用于对请求信息进行过滤或转换。该函数会接收一个参数,即请求对象 request,需要返回一个对象用于记录请求信息。
  • responseFilter: function,用于对响应信息进行过滤或转换。该函数会接收三个参数,分别为:requestresponseresult,需要返回一个对象用于记录响应信息。
-- -------------------- ---- -------
----- ------ - -
    ------- ------------------------------------
    -------- -
        -------- -- ---- -- -- ---------------------------
        -------------- --------- -- -
            ------ -
                --- ----------------
                ------- ---------------
                ---- -----------------
                -------- ---------------
            --
        --
        --------------- --------- --------- ------- -- -
            ------ -
                --- ----------------
                ----------- --------------------
                -------- ------
            --
        -
    -
--

示例代码

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

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

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

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

--------

指导意义

@horizonfour/hapi-logger 是一个非常实用的 Hapi 框架下的插件,可以帮助开发者快速地记录请求相关信息,方便调试及日志分析。在项目开发过程中,使用该插件可以:

  • 方便地进行调试:使用该插件可以记录请求及响应相关的信息,方便对请求进行分析和定位错误。
  • 提高开发效率:该插件易于集成,使用简单,可以通过配置选项来满足不同的需求,可以帮助开发者快速地进行开发。
  • 改善软件质量:使用该插件可以方便地记录日志,可以精确地了解软件运行情况,方便进行软件质量控制。

因此,在 Hapi 项目开发过程中,推荐使用 @horizonfour/hapi-logger 来记录请求日志,以便于提高项目开发效率,改善软件质量。

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

纠错
反馈