Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js OpsWorks层控制台日志_Node.js_Console.log_Aws Opsworks_Monit - Fatal编程技术网

Node.js OpsWorks层控制台日志

Node.js OpsWorks层控制台日志,node.js,console.log,aws-opsworks,monit,Node.js,Console.log,Aws Opsworks,Monit,我有一个带有Node.js层和Node.js应用程序的Opsworks堆栈。我想知道是否有人知道ubuntu 14.04LTS实例上我的应用程序的控制台日志打印到哪里。我知道opsworks使用monit来运行我的应用程序,但我不确定它将日志输出到哪里 谢谢 除非更改了console.log的行为,节点将console.log日志输出到应用程序的标准输出(stdout)。 如果您在控制台中运行节点应用程序或使用ssh,则应该在那里看到日志。 否则,请尝试将应用程序的标准输出重定向到一个文件,这样

我有一个带有Node.js层和Node.js应用程序的Opsworks堆栈。我想知道是否有人知道ubuntu 14.04LTS实例上我的应用程序的控制台日志打印到哪里。我知道opsworks使用monit来运行我的应用程序,但我不确定它将日志输出到哪里


谢谢

除非更改了console.log的行为,
节点将
console.log
日志输出到应用程序的标准输出(
stdout
)。 如果您在控制台中运行节点应用程序或使用ssh,则应该在那里看到日志。 否则,请尝试将应用程序的标准输出重定向到一个文件,这样即使在没有控制台的情况下运行,也可以看到它,方法如下:
节点myapp.js>日志文件

首选的方法是让用户确保您的应用程序一直处于打开状态,并且您可以按如下方式重定向输出(stdout和stderr):

/>forever -o forever.out -e forever.err myapp.js

令人恼火的是,在Opsworks上为Node.JS应用程序呈现的Monit配置没有将输出发送到任何地方。(当我知道这件事时,我很惊讶!)

我建议您重写该模板—请参阅:基本上,您只需从Amazon复制粘贴Monit配置,但更改第2行以将输出重定向到文件,如下所示:

start program=“/bin/bash-c”cd/current;source/shared/app.env;/usr/bin/env PATH=$PATH:/usr/local/bin PORT=NODE\u PATH=/current/NODE\u modules:/current/usr/local/bin/NODE&>/current/log/production.log”

我通过以下操作找到了日志(类似于@RyanWilcox的评论):

  • 我在/srv/www/{APP NAME}/current中找到了我的“当前”部署/
  • 在列出文件时,我可以看到日志目录symlink(日志应该是 符号链接到/srv/www/{APP NAME}/shared/log之类的内容
  • 我试图将cd刻录到此目录时遇到权限问题,因此 使用命令“sudo”切换到无密码的超级用户 然后我就可以访问目录了
  • 最后在logs目录中,我可以看到nodejs控制台日志 对于STDERR和STDOUT

  • …而Bob的父亲是您父亲的父亲。

    您可以在应用程序目录中找到它,然后您将找到此共享路径/log


    例如:
    /srv/www/my_app/shared/log

    谢谢!是的,他们没有将输出发送到任何地方,这很奇怪。谢谢RyanWilcox!我添加了一个类似的覆盖。谢谢。但是,当你SSH到实例时,你如何访问日志以及在哪里查找日志?谢谢!@Leo日志将保存在/srv/www/YOUR app NAME/current/log/production。(或者我所做的,将该文件连接到AWS CloudWatch日志或类似服务的监控下,以便您可以使用web UI。非常感谢,@RyanWilcox