Rails:在生产中配置记录器以与Papertrail一起使用

时间:2018-05-04 14:05:35

标签: ruby-on-rails logging heroku papertrail-app

我尝试将我的记录器配置为在部署到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

1 个答案:

答案 0 :(得分:0)

Heroku强制记录到STDERR / STDOUT。设置自定义日志记录目标在Heroku的环境中不起作用。要将日志存入Papertrail(或任何其他远程系统日志服务器),您需要set up a log drain