禁用永久运行的node.js脚本中的日志记录

Cub*_*bis 9 logging logfile node.js forever

我不断使用nodejs运行一些服务器脚本(在不同的端口上).

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

我的系统中的其他人在我不知情的情况下删除了我为每个服务器设置的日志文件.在命令行上调用永远列表显示服务器脚本仍在运行,但现在我无法查看日志文件以查看节点的运行情况.

节点停机时间应该保持在最低限度,所以我不愿意在白天停止服务器超过几分钟.来自客户端的初始测试似乎表明脚本运行正常,但我不能100%确定没有因为尝试登录到不存在的文件失败而导致错误.

我实际上有几个问题:

  1. 可以保持这样的永远运行吗?
  2. 如果没有,是否有适当的方法来禁用日志记录?在GitHub的库似乎表明,将永远仍然记录到一个默认的文件,这是我不想要的.否则我可能只是写一个cronjob定期停止脚本,截断日志,然后重新启动脚本.
  3. 如果我在脚本仍在运行时再次使用touch logfile_name.log之类的东西再次创建日志文件会发生什么- 这会让这一点永远变得怪异或者这是一个看似合理的解决方案吗?

谢谢你的时间.

小智 1

有一个很棒的工具可以帮助你,那就是 logrotate。看看这里

特别是copytruncate选项,它对您的情况非常有用。