2

我的应用程序有一个名为 staging 的自定义环境。出于某种原因,从未创建过 staging.log 文件,并且我假设要写在那里的所有内容都显示在 nginx error.log 文件中。是否有我缺少的配置选项?

4

3 回答 3

4

这是一个老问题,但我刚刚遇到了同样的问题,并想分享为我解决的问题,以防它帮助其他遇到此问题的人。

就我而言,我使用的是rails_12factor gem(因为我曾经在 Heroku 上部署过我的应用程序),这会导致所有日志记录都转到标准输出。这导致它全部被转储到 nginx_error.log 中。我能够完全删除 gem 来修复它,因为我不再将 Heroku 用于应用程序,但如果您需要支持 Heroku 部署,您可以添加某种配置,以便仅在该上下文中需要 rails_12factor。

于 2013-11-17T18:42:03.997 回答
0

尝试添加类似

c = ActiveSupport::BufferedLogger.new("log/staging.log")
c.auto_flushing = true
config.logger = c

对于您的config/environments/staging.rb 另外,您也许应该使用 auto_flushing 选项,rails guide about configuration,说它在生产环境中已关闭,我不知道为什么。请参阅此处的BufferedLogger 文档。在我看来,它不是完美的解决方案,但看起来很有效。

于 2012-11-12T06:03:23.700 回答
0

登录 nginx 你有:

有一个问题error_log

如果您将其设置为debug,而您的 nginx 未使用该--with-debug标志编译,它将落入默认的 error.log 位置。

检查您的 nginx 的标志是否是使用nginx -V命令编译的

于 2012-11-12T18:01:12.173 回答