自定义rails环境日志写入nginx error.log

我有一个名为staging的应用程序的自定义环境。 出于某种原因,不会创buildstaging.log文件,并且所有我认为要写入的东西都会显示在nginx的error.log文件中。 有没有我错过的configuration选项?

这是一个古老的问题,但我遇到了同样的问题,并希望分享什么修复它,以防其他人遇到这种情况。

在我的情况下,我使用rails_12factor gem(因为我的应用程序部署在Heroku一点),这导致所有日志记录到标准输出。 这导致这一切都被转储到nginx_error.log中。 我能够完全删除gem来修复它,因为我不再使用Heroku,但是如果你需要支持Heroku的部署,你可以添加一些配置,这样rails_12factor只在这个上下文中被需要。

尝试添加类似的东西

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

到你的config/environments/staging.rb staging.rb你也许应该玩auto_flushing选项,导轨指导配置 ,说它关闭了生产env,我不知道为什么。 请参阅BufferedLogger文档。 它看起来不像我完美的解决方案,但看起来像它的作品。

登录nginx你有:

有一个与error_log

如果你把它设置为debug ,而你的nginx不是使用--with-debug标志编译的,那么它将会跳转到默认的error.log位置。

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