如何永久打印子进程输出到stdout。

时间:2015-02-09 04:09:58

标签: node.js logging docker forever

我在docker容器中永远运行节点应用程序,如何让所有console.log输出显示在控制台上?我是docker的初学者所以我认为使用docker登录的最佳方法是简单地登录到stdout。如果有更好的方法来做到这一点,我可以选择其他解决方案。

2 个答案:

答案 0 :(得分:1)

forever与标准node一样,只需登录到stdout,因此您不必做任何特别的事情。当然,如果您使用docker run -d启动容器,则必须运行docker logs -f myNodeContainer才能实际看到输出。

答案 1 :(得分:1)

我刚刚遇到这个问题,因为我还是第一次永远安装,只使用forever server.js并且没有任何内容运行它。

没有节点控制台消息,只有关于no --minUptime和没有--spinSleepTime的警告。我使用forever stopall停止了永久进程并继续寻找日志。果然,永远的日志是我服务器上的所有标准输出。

我以为我错过了打印到stdout的选项,但显然没有。在阅读了这个问题之后,我启动了一个新的终端,再次运行它并且它可以工作 - 它现在将我的服务器消息记录到控制台。

从那时起,我也经历了许多奇怪的问题。就像它连续重启脚本一样,即使脚本无法在1000毫秒内启动(其中一个文件中存在语法错误) - 我停止它,再次运行(相同的选项,相同的源文件)并且它做了它应该做的事情to(仅运行一次脚本)。

不是真的答案(对不起),但这是为了防止有人来寻求信息。