简介
在前端开发中,经常需要查看服务器的日志来调试代码或者排查问题。传统的做法是通过 SSH 登录服务器,然后使用 tail
命令来查看日志。但是这种方式不够方便,特别是在多人协作的情况下。本文介绍如何使用 Express.js 和 PM2 实现在线日志查看和管理,使得多人可以同时查看和管理服务器的日志。
准备工作
在开始之前,需要先安装 Node.js 和 PM2。Node.js 是一个 JavaScript 运行环境,而 PM2 是一个 Node.js 进程管理工具。如果你还没有安装它们,可以参考以下链接进行安装:
步骤
1. 创建 Express.js 应用程序
首先,我们需要创建一个 Express.js 应用程序。在命令行中执行以下命令:
$ mkdir log-viewer $ cd log-viewer $ npm init -y $ npm install express
然后,在 log-viewer
目录下创建 index.js
文件,内容如下:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ------------ ----- ---- -- - --------------- --------- --- ---------------- -- -- - ---------------- --------- -- ---- -------- ---
这个应用程序只是一个简单的 Express.js 应用程序,它监听 3000 端口,并且返回一个 "Hello World!" 字符串。
2. 添加日志查看路由
接下来,我们需要添加一个路由来查看日志。在 index.js
文件中添加以下代码:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- -- - -------------- -------------------------- ----- ---- -- - ----- -------- - -------------------- ----- -------- - -------------------- ------- ---------- --------------------- -------- ----- ----- -- - -- ----- - ------------------- ---------------------------- -- ---- --- ------- ------- - --------------- --- ---
这个路由会接收一个 filename
参数,并且从 logs
目录中读取对应的日志文件。如果读取失败,会返回 500 错误码和错误信息,否则会返回日志文件的内容。
3. 添加日志管理路由
除了查看日志,我们还需要一个路由来管理日志。在 index.js
文件中添加以下代码:
-- -------------------- ---- ------- --------------------------- ----- ---- -- - ----- -------- - -------------------- ----- -------- - -------------------- ------- ---------- ----- - ------ - - --------- ------ -------- - ---- -------- ---------------------- --- --- -- - -- ----- - ------------------- ---------------------------- -- ----- --- ------- ------- - ------------- ---- ---------- --- ------ -------- ----------------------------- --------- ------ - ---
这个路由会接收一个 filename
参数,并且从 logs
目录中读取对应的日志文件。然后,根据请求的 action
参数执行相应的操作。目前,我们只支持 clear
操作,即清空日志文件。
4. 启动应用程序
现在,我们已经编写完了应用程序的代码。在命令行中执行以下命令启动应用程序:
$ node index.js
然后,访问 http://localhost:3000/
,应该能够看到 "Hello World!" 字符串。接下来,我们需要在 PM2 中启动应用程序。
5. 在 PM2 中启动应用程序
在命令行中执行以下命令启动应用程序:
$ pm2 start index.js --name log-viewer
这个命令会在后台启动应用程序,并且将应用程序命名为 "log-viewer"。可以通过以下命令查看应用程序的状态:
$ pm2 status
6. 查看和管理日志
现在,我们已经成功启动了应用程序。可以通过以下 URL 查看和管理日志:
- 查看日志:
http://localhost:3000/logs/<filename>
- 清空日志:
http://localhost:3000/logs/<filename>
,POST 请求,参数为{ "action": "clear" }
其中,<filename>
是日志文件的名称,需要放在 logs
目录下。可以通过以下命令创建一个日志文件:
$ mkdir logs $ echo "Hello World!" > logs/app.log
然后,访问 http://localhost:3000/logs/app.log
,应该能够看到 "Hello World!" 字符串。可以通过以下命令清空日志文件:
$ curl -X POST -d '{"action":"clear"}' http://localhost:3000/logs/app.log
总结
在本文中,我们介绍了如何使用 Express.js 和 PM2 实现在线日志查看和管理。通过这种方式,多人可以同时查看和管理服务器的日志,使得调试和排查问题更加方便。如果你想深入学习 Node.js 和 Express.js,可以参考以下链接:
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6555432bd2f5e1655df55174