我们切换到Unicorn,但丢失了Heroku上的所有应用程序登录。我用Google搜索了一下,并了解到Heroku的Ruby buildpack安装了一个插件“rails_log_stdout”,它与Unicorn不相称。我的猜测是这与Unicorn的分叉性质有关,但我没有证实。
建议使用https://gist.github.com/jamiew/2227268之类的各种解决方法。这些让我觉得不满意,因为他们不会使用Rails应用程序或任何标签中定义的日志级别,或者记录器格式化覆盖等等。这对我来说似乎有点暴力。什么是正式的“正式”方式?
答案 0 :(得分:1)
这就是我重新实例化记录器以避免丢失日志记录级别或登录标记的方法。我必须在每个环境文件中单独执行此操作,production.rb
,staging.rb
(如果有的话),等等。
MyApp::Application.configure do
# ...
logger = Logger.new(STDOUT)
logger = ActiveSupport::TaggedLogging.new(logger) if defined?(ActiveSupport::TaggedLogging)
config.logger = logger
log_level_env_override = Logger.const_get(ENV['LOG_LEVEL'].try(:upcase)) rescue nil
config.logger.level = log_level_env_override || Logger.const_get(Rails.configuration.log_level.to_s.upcase)
# ...
end
我不喜欢这个。我希望Unicorn能有更优雅的东西。