禁用日志记录在node.js的脚本运行下去

问题描述 投票:8回答:3

我不断地运行,使用的NodeJS永远几个服务器脚本(在不同的端口)。

有一些这些服务器的大量的流量。该命令的console.log我有跟踪连接异常导致,我并不需要所有的时间臃肿的日志文件 - 仅用于调试。我一直手动停止脚本深夜,截断文件,并重新启动它们。这不会长期做,所以我们决定找到一个解决方案。

有人在我的系统上的人删除我已经建立了每个服务器的日志文件,我不知情的情况。调用永远列出在命令行上显示服务器脚本仍在运行,但现在我不能尾日志文件怎么看的节点都在做。

节点的故障时间应保持在最低限度,所以我不敢随便停在白天的服务器超过了几分钟。从客户端初步测试似乎表明脚本正在做的很好,但我不能100%肯定没有由于在记录失败的尝试不存在的文件的错误。

我有几个问题实际上是:

  1. 它是确定继续运行下去这样吗?
  2. 如果没有,是否有禁用日志有道?该github repository似乎表明,将永远仍然记录到一个默认的文件,这是我不想要的。否则,我可能只写一个cronjob定期停止脚本,截断日志,然后重新启动脚本。
  3. 如果我只是喜欢的东西触摸logfilename.log重新创建日志文件,在脚本仍在运行,会发生什么 - 本作会永远吓坏了或这是一个合理的解决方案吗?

谢谢你的时间。

node.js logging forever logfile
3个回答
3
投票

根据https://github.com/foreverjs/forever,尽量-s传递给沉默的所有日志。

forever -s start YOURSCRIPT

当然,在此之前,试图永远更新到最新:

sudo curl -L https://npmjs.com/install.sh | sudo sh

sudo npm update -g


1
投票

有一个极好的工具,可以帮助你,叫logrotate的。看看here

尤其是copytruncate选项,它是在你的情况是非常有用的。


1
投票

1)只要建立一个定期的功能或管理选项来清除永远记录。从手动forever cleanlogs

2)至少为Linux。发送每个日志文件/dev/null。每个日志类型由选项-l -o-r规定。对于-aappend log选项,将停止抱怨日志已经存在。

forever start -a -l /dev/null -o /dev/null -r /dev/null your-server.js

也许使用你自己的日志系统中,我使用log4js,如果我删除日志文件,而节点进程仍在运行它不会抱怨。

© www.soinside.com 2019 - 2024. All rights reserved.