我尝试将我的记录器配置为在部署到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
答案 0 :(得分:0)
Heroku强制记录到STDERR / STDOUT。设置自定义日志记录目标在Heroku的环境中不起作用。要将日志存入Papertrail(或任何其他远程系统日志服务器),您需要set up a log drain。