0

我正在尝试将我的记录器配置为在部署到 Heroku 的 Rails 5.1.4 应用程序上工作。我正在使用 Papertrail,但我的自定义日志消息没有显示在那里。我没有收到任何错误。怎么了?

我的配置/环境/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

我的 Heroku 变量:

RAILS_LOG_TO_STDOUT    enabled
RACK_ENV               production
RAILS_ENV              RAILS_ENV

在我的方法中,我一直在尝试像这样调用记录器:

Rails.logger.info "Logger message..."

我也尝试按照以下步骤操作:https ://help.papertrailapp.com/kb/configuration/configuring-centralized-logging-from-ruby-on-rails-apps/#configure-rails-environment但它没有工作。在这种情况下,我安装了 gem remote_syslog_logger 并将我的 config/environments/production.rb 代码更改为:

if ENV["RAILS_LOG_TO_STDOUT"].present?
    logger           = ActiveSupport::Logger.new(STDOUT)
    logger.formatter = config.log_formatter
    config.logger    = RemoteSyslogLogger.new('my-app-name.papertrailapp.com', 5432)
  end
4

1 回答 1

0

Heroku 强制记录到 STDERR/STDOUT。设置自定义日志目标不会在 Heroku 的环境中产生影响。要将日志输入 Papertrail(或任何其他远程 syslog 服务器),您需要设置 log drain

于 2018-05-04T15:18:08.587 回答