我有一个名为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
指令,请参阅http://nginx.org/en/docs/ngx_core_module.html#error_log acces_log
指令,请参阅http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log 有一个与error_log
:
如果你把它设置为debug
,而你的nginx不是使用--with-debug
标志编译的,那么它将会跳转到默认的error.log位置。
检查你的nginx是否使用nginx -V
命令编译的标志