使用 Express.js 和 PM2 实现在线日志查看和管理

阅读时长 6 分钟读完

简介

在前端开发中,经常需要查看服务器的日志来调试代码或者排查问题。传统的做法是通过 SSH 登录服务器,然后使用 tail 命令来查看日志。但是这种方式不够方便,特别是在多人协作的情况下。本文介绍如何使用 Express.js 和 PM2 实现在线日志查看和管理,使得多人可以同时查看和管理服务器的日志。

准备工作

在开始之前,需要先安装 Node.js 和 PM2。Node.js 是一个 JavaScript 运行环境,而 PM2 是一个 Node.js 进程管理工具。如果你还没有安装它们,可以参考以下链接进行安装:

步骤

1. 创建 Express.js 应用程序

首先,我们需要创建一个 Express.js 应用程序。在命令行中执行以下命令:

然后,在 log-viewer 目录下创建 index.js 文件,内容如下:

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

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

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

这个应用程序只是一个简单的 Express.js 应用程序,它监听 3000 端口,并且返回一个 "Hello World!" 字符串。

2. 添加日志查看路由

接下来,我们需要添加一个路由来查看日志。在 index.js 文件中添加以下代码:

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

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

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

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

这个路由会接收一个 filename 参数,并且从 logs 目录中读取对应的日志文件。如果读取失败,会返回 500 错误码和错误信息,否则会返回日志文件的内容。

3. 添加日志管理路由

除了查看日志,我们还需要一个路由来管理日志。在 index.js 文件中添加以下代码:

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

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

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

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

这个路由会接收一个 filename 参数,并且从 logs 目录中读取对应的日志文件。然后,根据请求的 action 参数执行相应的操作。目前,我们只支持 clear 操作,即清空日志文件。

4. 启动应用程序

现在,我们已经编写完了应用程序的代码。在命令行中执行以下命令启动应用程序:

然后,访问 http://localhost:3000/,应该能够看到 "Hello World!" 字符串。接下来,我们需要在 PM2 中启动应用程序。

5. 在 PM2 中启动应用程序

在命令行中执行以下命令启动应用程序:

这个命令会在后台启动应用程序,并且将应用程序命名为 "log-viewer"。可以通过以下命令查看应用程序的状态:

6. 查看和管理日志

现在,我们已经成功启动了应用程序。可以通过以下 URL 查看和管理日志:

  • 查看日志:http://localhost:3000/logs/<filename>
  • 清空日志:http://localhost:3000/logs/<filename>,POST 请求,参数为 { "action": "clear" }

其中,<filename> 是日志文件的名称,需要放在 logs 目录下。可以通过以下命令创建一个日志文件:

然后,访问 http://localhost:3000/logs/app.log,应该能够看到 "Hello World!" 字符串。可以通过以下命令清空日志文件:

总结

在本文中,我们介绍了如何使用 Express.js 和 PM2 实现在线日志查看和管理。通过这种方式,多人可以同时查看和管理服务器的日志,使得调试和排查问题更加方便。如果你想深入学习 Node.js 和 Express.js,可以参考以下链接:

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

纠错
反馈