Hapi 进阶:如何使用 Hapi-Request-Log 插件记录请求日志

在前端开发中,日志是我们经常需要用到的工具之一。Hapi 作为一款常用的 Node.js Web 应用程序框架也同样需要方便地记录请求日志。Hapi-Request-Log 插件正是为了满足这一需求而产生的。本文将向你介绍如何使用 Hapi-Request-Log 插件记录请求日志。

Hapi-Request-Log 插件

Hapi-Request-Log 是一款 Hapi 插件,它可以方便地记录请求日志并输出到控制台或日志文件中。它支持记录请求的路径、请求方法、查询参数、请求的 Body、响应状态码等信息,同时也支持自定义输出格式。

安装

只需要使用 npm 安装一个名为 hapi-request-log 的包即可使用:

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

使用

使用 Hapi-Request-Log 插件记录请求日志只需要一个简单的注册操作即可。在 Hapi 创建 Server 实例时注册插件即可:

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

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

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

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

--------

Hapi-Request-Log 插件配置

上面我们已经提到 Hapi-Request-Log 插件支持一些配置项,下面我们来看一下具体都是些什么。

output

  • 描述:日志输出方式,可以是控制台或文件
  • 类型:string
  • 可选值:console、file
  • 默认值:console

format

  • 描述:日志输出格式,可以包含预定义的变量
  • 类型:string
  • 默认值:'{method} {path} {query} {statusCode}'
变量名 描述
id 请求 id
method 请求方法
path 请求路径
headers 请求头
query 查询参数
payload 请求体
responsePayload 响应体
statusCode 响应状态码
responseTime 请求响应时长(毫秒)
remoteAddress 客户端 IP 地址
userAgent 客户端 User-Agent
referer 客户端请求来源
hostname 客户端 Host
correlationId 请求相关 ID
authenticatedUser 已授权的用户信息(通过 request.auth.credentials 获取)

filePath

  • 描述:输出到文件时的文件路径
  • 类型:string
  • 默认值:无

示例

下面我们来一个具体的例子,演示一下 Hapi-Request-Log 插件如何方便地记录请求日志。

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

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

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

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

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

--------

我们可以看到控制台输出了请求日志:

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

如上所述,我们可以通过设置配置项 format 来自定义输出日志的格式。

结论

通过上述简单操作,我们已经可以使用 Hapi-Request-Log 插件轻松地记录请求日志。我们可以将日志输出到控制台或者文件中,而且还可以自定义日志格式。使用 Hapi-Request-Log 插件能够更好地跟踪请求,并提高应用程序的可调试性和可维护性。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67146304ad1e889fe213927d