目前开发了一个 Node 服务,使用 PM2 来实现进程管理。
后端服务,日志功能是必须且必要的。因为不定什么时候就会出现幺蛾子。
包括但不限于:
- 调用者的调用姿势不对。包括但不限于request.url,request.method, request.body等。
- 代码本身健壮不够,未考虑边界问题
- 网络问题
当以上问题发生后,在生产环境已经很难追溯现场。所以,使用日志的方式保存当时的情形【包括请求信息,返回信息等】,然后再重现事故现场。
PM2 自带日志功能。在配置文件中即可配置日志文件路径。
module
以上配置,日志文件默认保存在当前目录的 /logs 文件目录下。
如果以前设置过日志路径,那么日志文件是默认保存到 .pm2/logs 文件夹下面。这样的话,服务和日志就分离了,操作起来很不方便。
所有我这里手动设置了日志文件的路径。
[service_id
结果发现,日志文件还是保存在 .pm2/logs 文件夹下。
cat ecosystem.config.js
文件内容是正确的。
这时候,问题就来了,为什么我修改了配置文件,但是配置却不生效呢???
原来是服务重启的方式不对,应该这样来操作
pm2 stop [service_id]
pm2 delete [service_id]
pm2 start ecosystem.config.js
pm2 show [service_id]
这样,日志文件的新路径就生效了。
遗留问题:
- 为什么必须删掉服务重启才能生效呢?
- 如果是在生产环境,停服的成本是非常高昂的,包括:stop 之前的请求未处理结束返回,stop 到 start1 这段时间是无法提供服务的。
以上问题,研究清楚之后,再来更新。