在 Express.js 应用程序中,记录请求日志是非常重要的,因为它可以帮助我们跟踪应用程序的性能和问题。Morgan 是一个流行的 Node.js 请求日志中间件,它可以帮助我们轻松地记录请求日志。
在本文中,我们将介绍如何在 Express.js 应用程序中使用 Morgan 实现请求日志记录。我们将讨论 Morgan 的基本用法、配置选项以及如何将其与 Express.js 应用程序集成。
安装 Morgan
首先,我们需要安装 Morgan。在终端中运行以下命令:
npm install morgan
基本用法
在 Express.js 应用程序中使用 Morgan 非常简单。我们只需要在应用程序中引入 Morgan 和 Express,然后将 Morgan 作为中间件使用即可。
以下是一个最基本的使用 Morgan 的示例:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------ - ------------------ ----- --- - ---------- ---------------------------- ------------ ----- ---- -- - --------------- --------- --- ---------------- -- -- - ------------------- -- ------- -- ---- ------- ---
在上面的示例中,我们使用了 Morgan 的 combined
格式来记录请求日志。这个格式包含了请求的 IP 地址、HTTP 方法、URL、状态码、响应时间和响应大小等信息。
现在,我们可以启动应用程序并访问首页。在终端中,我们应该可以看到类似于以下的请求日志:
::1 - - [01/Jan/2022:01:01:01 +0000] "GET / HTTP/1.1" 200 13 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" "-"
配置选项
Morgan 提供了很多配置选项,可以帮助我们自定义请求日志的格式和内容。以下是一些常用的选项:
format
:自定义日志格式的函数或预定义格式的名称。skip
:一个函数,用于判断是否记录该请求的日志。stream
:一个可写流,用于将日志输出到文件或其他地方。immediate
:一个布尔值,用于指定是否在请求开始时记录日志。
以下是一个使用自定义格式的示例:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------ - ------------------ ----- --- - ---------- ---------------------- ----- ---- -- - ------ ------- ----- --- ----------------------- ---- ------- -------------- -- ----------- ------------ ----- ---- -- - --------------- --------- --- ---------------- -- -- - ------------------- -- ------- -- ---- ------- ---
在上面的示例中,我们使用了自定义格式 :method :url :status :response-time ms :custom
,其中 :custom
是一个自定义的占位符,它返回了固定的字符串 'custom log'
。
现在,我们可以启动应用程序并访问首页。在终端中,我们应该可以看到类似于以下的请求日志:
GET / 200 8.679 ms custom log
集成到 Express.js 应用程序中
通常情况下,我们需要将 Morgan 集成到 Express.js 应用程序中,以便在整个应用程序中记录请求日志。以下是一个将 Morgan 集成到 Express.js 应用程序中的示例:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------ - ------------------ ----- --- - ---------- ---------------------------- ------------ ----- ---- -- - --------------- --------- --- ---------------- -- -- - ------------------- -- ------- -- ---- ------- ---
在上面的示例中,我们使用了 app.use
方法将 Morgan 中间件注册到应用程序中。这样,所有的请求都会被记录到日志中。
总结
在本文中,我们介绍了如何在 Express.js 应用程序中使用 Morgan 实现请求日志记录。我们讨论了 Morgan 的基本用法、配置选项以及如何将其与 Express.js 应用程序集成。希望这篇文章对你有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65f91651d10417a2224d80f1