我的应用程序有一个名为staging的自定义环境。由于某种原因,没有创建staging.log文件,并且我假设要写入的所有内容都会出现在nginx error.log文件中。是否有我缺少的配置选项?
答案 0 :(得分:3)
这是一个老问题,但我遇到了同样的问题,想要分享为我修复的问题,以防万一其他人遇到这个问题。
在我的情况下,我使用 rails_12factor gem(因为我的应用程序在Heroku上部署了一次),这导致所有日志记录转到stdout。这导致它全部被转储到nginx_error.log中。我能够完全删除gem以修复它,因为我不再使用Heroku作为应用程序,但是如果你需要支持Heroku部署,你可以添加某种配置,以便只在该上下文中需要rails_12factor。
答案 1 :(得分:0)
尝试添加类似
的内容c = ActiveSupport::BufferedLogger.new("log/staging.log")
c.auto_flushing = true
config.logger = c
到config/environments/staging.rb
你也许应该玩auto_flushing选项,关于configuration的rails指南,说它在生产环境中关闭,我不知道为什么。请参见BufferedLogger docs here。
它看起来不像是完美的解决方案,但看起来很有效。
答案 2 :(得分: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 -V
命令