在 Express.js 中使用访问日志记录中间件的方法

阅读时长 4 分钟读完

简介

在开发 Web 应用程序时,了解访问日志是很重要的。访问日志可以帮助开发者跟踪服务器上的请求,并记录重要的信息。在 Node.js 和 Express.js 中,我们可以使用中间件来记录访问日志。

在本文中,我们将学习如何在 Express.js 中使用访问日志记录中间件。

安装

我们将使用 morgan ,这是一个流行的 Node.js 日志记录器。它可以记录访问日志,并提供多种格式与选项。

要安装 morgan,请在命令行中执行以下命令:

使用方法

要在 Express.js 中使用中间件,我们需要在应用程序中设置它。对于 morgan 中间件,它需要传入一个格式化字符串。下面是一个基本的示例:

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

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

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

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

在上面的示例中,我们设置了 combined 格式化字符串,这将记录完整的访问日志,包括 HTTP 请求方法、URL、状态代码以及响应时间。

现在,我们可以运行应用程序并查看控制台输出。每次请求时,我们将看到记录的访问日志。

自定义格式

除了使用内置的格式化字符串之外,我们还可以使用自定义格式。Morgan 在其文档中提供了格式指南,使我们可以根据自己的需要创建格式字符串。

以下是一个自定义格式字符串的示例,它将记录请求方法、URL、状态代码、响应时间及其它额外信息:

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

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

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

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

在上面的示例中,我们使用了 token 方法,创建了一个名为 data 的 token。然后,我们为日志记录设置了自定义格式化字符串,使用了我们所创建的 token。

条件日志记录

Morgan 还提供了一个机制,使我们可以仅在满足特定条件时记录日志。例如,我们可以根据请求的 URL、状态代码或访问时间来记录日志。

以下是一个基于请求 URL 的条件日志记录的示例:

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

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

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

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

在上面的示例中,我们使用了 skip 选项,创建了一个回调函数。如果回调函数返回真值,那么日志记录将被跳过。在这个例子中,我们通过检查 URL 是否为 /healthcheck 来跳过日志记录。

结论

在本文中,我们学习了如何在 Express.js 中使用访问日志记录中间件。我们使用了 morgan 中间件来记录访问日志,并使用了自定义格式和条件日志记录。希望这篇文章能够对你有所帮助!

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

纠错
反馈