Express.js 中使用 morgan 中间件进行日志记录的最佳实践

前言

在现代 Web 应用程序中,日志记录是至关重要的一项工作。它可以帮助您更好地了解应用程序中发生的事情,从而更好地进行故障排除和性能调整。Express.js 是一个流行的 Web 开发框架,拥有广泛的生态系统。j:morann 权威轻巧的日志记录器有助于记录请求和响应,并提供了一些有用的日志格式,可以轻松集成到 Express 应用程序中进行日志记录。

在本文中,我们将介绍使用 morgan 作为中间件来记录 Express.js 应用程序日志的最佳实践,包括为 Express.js 应用程序添加 morgan 中间件的步骤、使用 morgan 定制日志的格式和内容、理解日志级别、记录错误和异常。

步骤

首先,安装 morgan:

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

然后,将 morgan 模块导入到 Express.js 应用程序中,如下所示:

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

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

在上述示例中,“dev”是 morgan 预定义的日志格式之一。morgan 还提供其他的预定义日志格式,如“common”、“combined”等。您可以根据您的应用程序的需要选择其中一个格式。

指定日志格式和内容

您还可以通过将自定义标记添加到日志格式中以记录有关请求和响应的更多信息。使用这些标记,您可以让日志记录包含有用的信息,例如 HTTP 版本、响应时间、请求的 URL 等。以下是一些标记的示例:

  • :date[iso]: 记录时间戳,格式为 ISO 标准(例如:2022-02-25T15:58:34.261Z)。
  • :remote-addr: 记录客户端 IP 地址。
  • :remote-user: 记录客户端代理用户的名称(如果可用)。
  • :method: 记录 HTTP 请求方法(例如 GET、POST 等)。
  • :url: 记录请求的 URL。
  • :http-version: 记录 HTTP 版本。
  • :status: 记录响应状态码。
  • :response-time: 记录响应时间,以毫秒为单位。

例如,以下代码为包含日期、IP 地址、请求方法、URL、HTTP 版本、状态码和响应时间的日志格式:

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

理解日志级别

morgan 允许您指定日志级别,以便记录不同严重程度的日志。以下是 morgan 中可用的日志级别:

  • combined: 记录详细的请求和响应信息。
  • common: 仅记录有关请求和响应的基本信息。
  • dev: 记录有关每个请求和响应的短消息。

要设置日志级别,请将级别名称作为参数传递给 morgan 中间件:

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

记录错误和异常

最后,您可以通过捕获 Express.js 中发生的错误和异常来记录它们,如下所示:

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

在上述示例中,我们通过向代理函数添加 err 参数并调用 console.error 方法来记录错误。错误处理程序还必须调用 next 函数,以便继续处理请求。

结论

在本文中,我们介绍了使用 morgan 中间件记录 Express.js 应用程序日志的最佳实践。我们讨论了如何选择日志格式、指定日志级别、记录错误和异常。使用这些技术,您可以为您的 Express.js 应用程序创建可靠的和有用的日志记录。

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