在 Express.js 中使用 Morgan 进行日志记录的最佳实践

阅读时长 3 分钟读完

在 Web 开发中,日志记录是非常重要的一项任务。通过记录应用程序的状态和行为,我们可以快速发现问题并帮助我们了解用户的行为和疑虑。Express.js 是一种非常受欢迎的 Web 框架,它提供了一种简单的方式来记录路由器的请求和响应。在本篇文章中,我们将会涉及到如何使用 Morgan 这个第三方 Node.js 模块来完成这个任务。

什么是 Morgan?

Morgan 是一个 Node.js 模块,它提供了一种用于记录 HTTP 请求的中间件。它可以记录请求的方法、URL、响应状态码、响应时间和客户端 IP 地址等信息。

Morgan 功能强大、易用,可以轻松集成到 Express.js 应用程序中。

安装 Morgan

你可以通过 npm 包管理器在你的项目中安装 Morgan:

使用 Morgan

要在你的 Express 应用程序中使用 Morgan,必须先将它添加到你的应用程序中。

在你的 Express.js 应用程序文件中,只需使用下面这段代码就可以将 Morgan 添加到你的应用程序中:

在这个例子中,我们传递了一个字符串“combined”作为参数给 Morgan。这个字符串告诉 Morgan 使用所谓的“combined”格式记录日志。这个格式包含了许多常见的日志信息,如请求的URL、响应状态码和响应时间等。

Morgan 提供了许多不同的预定义格式,你可以从中选择最适合你的格式。这都可以在 Morgan 的文档中找到。

创建自定义格式

除了使用预定义的格式之外,你还可以通过创建自定义格式来记录您感兴趣的日志信息。

为了创建自定义日志格式,你需要使用 Morgan 提供的自定义格式方法。这个自定义格式方法允许你传递一个回调函数给 Morgan,每当有一个请求来到你的服务器时,这个回调函数就会被调用。

例如,下面的代码将记录请求的 HTTP 方法、URL 和响应时间:

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

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

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

在这个例子中,我使用 Morgan 的 token 方法创建了一个名为“request-info”的自定义格式。这个自定义格式中的回调函数将返回请求的 HTTP 方法、URL 和响应时间等信息的格式化字符串。当我们在 app.use() 中调用 Morgan 时,我们使用“:request-info”参数来告诉它使用我们刚刚定义的格式。

在自定义格式化字符串时,你可以自由地添加你需要的任何信息,例如客户端的 IP 地址、响应正文等等。Morgan 提供了许多不同的 token 方法可以帮助你构建自定义格式化字符串。你可以在 Morgan 的文档中找到完整的文档。

结论

Morgan 是一个方便易用的日志记录中间件,它可以让你在 Express.js 应用中更轻松地记录和跟踪请求和响应。在这篇文章中,我们讲述了如何使用 Morgan,包括预定义的日志格式和自定义格式。通过使用这些方法,你可以创建一个标准化的日志输出文件,并更容易地 debug 应用。

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

纠错
反馈