我的应用程序有一个名为 staging 的自定义环境。出于某种原因,从未创建过 staging.log 文件,并且我假设要写在那里的所有内容都显示在 nginx error.log 文件中。是否有我缺少的配置选项?
问问题
840 次
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
指令,请参阅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
命令编译的
于 2012-11-12T18:01:12.173 回答