【问题标题】:heroku looking for a staging.log file?heroku 正在寻找 staging.log 文件?
【发布时间】:2012-04-18 19:29:01
【问题描述】:

由于无法找到 staging.log ,我们的 heroku staging 应用程序在启动时崩溃。这似乎很奇怪,因为它应该只是将所有内容输出到 development.log,所以我不确定发生了什么。

任何帮助将不胜感激!谢谢!

这是堆栈跟踪:

2012-04-18T19:20:36+00:00 heroku[web.1]: State changed from crashed to created
2012-04-18T19:20:36+00:00 heroku[web.1]: State changed from created to starting
2012-04-18T19:20:37+00:00 heroku[slugc]: Slug compilation finished
2012-04-18T19:20:40+00:00 heroku[web.1]: Starting process with command `bundle exec rails server -p 49887`
2012-04-18T19:20:46+00:00 app[web.1]: => Booting WEBrick
2012-04-18T19:20:46+00:00 app[web.1]: => Rails 3.0.3 application starting in staging on http://0.0.0.0:49887
2012-04-18T19:20:46+00:00 app[web.1]: => Call with -d to detach
2012-04-18T19:20:46+00:00 app[web.1]: => Ctrl-C to shutdown server
2012-04-18T19:20:46+00:00 app[web.1]: Exiting
2012-04-18T19:20:46+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/railties-3.0.3/lib/rails/rack/log_tailer.rb:8:in `size': No such file or directory - log/staging.log (Errno::ENOENT)
2012-04-18T19:20:46+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.0.3/lib/rails/rack/log_tailer.rb:8:in `initialize'
2012-04-18T19:20:46+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.2.5/lib/rack/server.rb:247:in `new'
2012-04-18T19:20:46+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.2.5/lib/rack/server.rb:247:in `block in build_app'
2012-04-18T19:20:46+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.2.5/lib/rack/server.rb:243:in `reverse_each'
2012-04-18T19:20:46+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.2.5/lib/rack/server.rb:243:in `build_app'
2012-04-18T19:20:46+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.2.5/lib/rack/server.rb:253:in `wrapped_app'
2012-04-18T19:20:46+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.2.5/lib/rack/server.rb:204:in `start'
2012-04-18T19:20:46+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.0.3/lib/rails/commands/server.rb:65:in `start'
2012-04-18T19:20:46+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.0.3/lib/rails/commands.rb:30:in `block in <top (required)>'
2012-04-18T19:20:46+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'
2012-04-18T19:20:46+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.0.3/lib/rails/commands.rb:27:in `<top (required)>'
2012-04-18T19:20:46+00:00 app[web.1]:   from script/rails:6:in `require'
2012-04-18T19:20:46+00:00 app[web.1]:   from script/rails:6:in `<main>'
2012-04-18T19:20:47+00:00 heroku[web.1]: Process exited with status 1
2012-04-18T19:20:47+00:00 heroku[web.1]: State changed from starting to crashed

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 logging heroku


    【解决方案1】:

    您的应用应该将其日志输出到 STDOUT,而不是服务器上的文件。详情见开发中心日志文章:https://devcenter.heroku.com/articles/logging

    Heroku 会在部署时自动将 rails_log_stdout 注入您的应用程序,从而修复 Rails 默认日志记录,所以我不确定为什么这里没有发生这种情况。部署到 Heroku 时是否看到以下行输出?

    -----> Rails plugin injection
       Injecting rails_log_stdout
       Injecting rails3_serve_static_assets
    

    【讨论】:

    • 是的,我知道这很奇怪。当我部署时,这些行在输出中。我什至在项目中添加了一个 staging.log 文件,只是想看看这是否会靠运气来修复它,然后向上推,仍然遇到同样的错误。
    • 重新考虑这一点,我可能在某处有一个 RAILS::Logger 语句,这可能是我的问题。 Lemme 只是 grep 真正的快速......是的,我在我的 environment.rb 文件中声明了一个 Logger.new(STDOUT)。删除它解决了我的问题。我的工作很糟糕,但感谢您的帮助!
    【解决方案2】:

    如果您有 config/environments/staging.rb 文件,请确保您已将 RACK_ENV 和 RAILS_ENV 都设置为“staging”。

    heroku config:add RACK_ENV=staging --app myapp-staging
    heroku config:add RAILS_ENV=staging --app myapp-staging
    

    【讨论】:

      【解决方案3】:

      您是否有一个Procfile 来指定您要运行的环境?我不相信 Heroku 要求这样做,但它允许您指定环境等。

      【讨论】:

        猜你喜欢
        • 2015-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-12
        • 2012-12-17
        相关资源
        最近更新 更多