我正在不断地使用nodejs运行一些服务器脚本(在不同的端口上)。
其中一些服务器上存在大量流量。我用于跟踪连接异常的 console.log 命令会导致我一直不需要的膨胀日志文件 - 仅用于调试。我一直在深夜手动停止脚本,截断文件,然后重新启动它们。这不会长期,所以我们决定找到解决方案。
我的系统上的其他人在我不知情的情况下删除了我为每个服务器设置的日志文件。在命令行上调用 forever list 表明服务器脚本仍在运行,但现在我无法查看日志文件以查看节点的运行情况。
节点停机时间应保持在最低限度,因此我不愿意在白天停止服务器超过几分钟。来自客户端的初始测试似乎表明脚本运行良好,但我无法100%确定没有因尝试登录到不存在的文件失败而导致的错误。
我实际上有几个问题:
感谢您的时间。
答案 0 :(得分:3)
根据https://github.com/foreverjs/forever,尝试将-s传递给silent all log。
forever -s start YOURSCRIPT
当然,在此之前,请尝试永远更新到最新版本:
sudo curl -L https://npmjs.com/install.sh | sudo sh
sudo npm update -g
。
答案 1 :(得分:1)
有一个漂亮的工具可以帮助你调用logrotate。看看here
尤其是 copytruncate 选项,它在您的情况下非常有用。
答案 2 :(得分:1)
1)只需构建一个定期函数或admin选项即可清除永久日志。从手册forever cleanlogs
2)至少对于linux。将每个日志文件发送到/dev/null
。每种日志类型都由选项-l
-o
和-r
指定。 -a
的{{1}}选项会阻止它抱怨已存在的日志。
append log
也许使用您自己的日志记录系统,我使用forever start -a -l /dev/null -o /dev/null -r /dev/null your-server.js
,如果我在节点进程仍在运行时删除日志文件,它不会抱怨。