如何在heroku日志上打印文本?

时间:2018-11-29 11:02:44

标签: ruby-on-rails heroku

据我所知,使用heroku在生产环境中进行调试的最佳方法是验证其日志。我想将变量显示为该终端的字符串,但无法使用下面的配置。

通过命令:

heroku logs

我想从给定页面的控制器中显示以下内容:

puts "****test****"

heroku article表示需要配置:

config.ru

$stdout.sync = true

我在这两行之间写:

require_relative 'config/environment'

$stdout.sync = true   # <----

run Rails.application

在同一篇文章中,我们需要将config.logger = Logger.new(STDOUT)添加到“到您应用的配置中以获取标准记录”。

因此,在这些行之间的 production.rb 中添加了

  # (...)

  config.logger = Logger.new(STDOUT) # <---

  config.log_level = :debug

  config.log_tags = [ :request_id ]

  # (...)

那行不通。

1 个答案:

答案 0 :(得分:1)

在您的production.rb文件中,您应该具有此配置(该配置应该已经存在,但是可以肯定地使用它)

if ENV["RAILS_LOG_TO_STDOUT"].present?
  logger           = ActiveSupport::Logger.new(STDOUT)
  logger.formatter = config.log_formatter
  config.logger    = ActiveSupport::TaggedLogging.new(logger)
end

这告诉您需要确保RAILS_LOG_TO_STDOUT环境变量在生产中具有值。

$ heroku config:set RAILS_LOG_TO_STDOUT=enabled

然后,在您的控制器中,您可以调用类似

logger.debug "****test****"