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

谢谢!

最佳答案

非常烦人的是,为Opsworks上的Node.JS应用渲染的Monit配置不会将输出发送到任何地方! Source for this claim。 (这让我感到惊讶!)

我建议做的是覆盖该模板-请参阅the OpsWorks documentation on overriding templates:本质上您需要做的就是从Amazon复制粘贴Monit配置,但是更改第2行以将输出重定向到文件,就像我在下面所做的那样:
start program = "/bin/bash -c 'cd <%= @deploy[:deploy_to] %>/current ; source <%= @deploy[:deploy_to] %>/shared/app.env ; /usr/bin/env PATH=$PATH:/usr/local/bin PORT=<%= @deploy[:nodejs][:port] %> NODE_PATH=<%= @deploy[:deploy_to] %>/current/node_modules:<%= @deploy[:deploy_to] %>/current /usr/local/bin/node <%= @monitored_script %> &> <%= @deploy[:deploy_to] %>/current/log/production.log'"

09-10 18:22