【问题标题】:Duplicate Logger output in Rails consoleRails 控制台中的重复记录器输出
【发布时间】:2025-12-12 15:55:01
【问题描述】:

我在我的一个 Rails 项目中使用 pry-rails,但每次使用 Rails 记录器时都会复制控制台输出。

例子:

Running via Spring preloader in process 21550
Loading development environment (Rails 4.2.6)
[1] pry(main)> Rails.logger.info "Hello! Is there echo in here?"
Hello! Is there echo in here?
I, [2016-07-03T17:21:02.430621 #21550]  INFO -- : Hello! Is there echo in here?
=> true

所以,我得到了类似 puts 的输出和正式的输出。

我正在发送我的 Gemfile,但作为摘要:

  • 我正在使用 rails_12factor,但它仅在生产环境中使用,我检查过,我在开发环境中。
  • 我几乎尝试了其他地方的所有配置
  • 这是唯一一个表现出这种问题的项目,但我找不到与其他项目有很大的不同。

宝石文件

source 'https://rubygems.org'
ruby '2.2.3'

gem 'bundler', '>= 1.12'
gem 'rails', '~> 4.2.6'
gem 'sass-rails', '~> 5.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jbuilder', '~> 2.0'
gem 'active_model_serializers'
gem 'kaminari'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'pg'
gem 'pg_search'
gem 'activerecord-postgis-adapter'
gem 'eu_central_bank'
gem 'money-rails'
gem 'rack-cors', :require => 'rack/cors'
gem 'puma'
gem "refile", require: "refile/rails"
gem "refile-mini_magick"
gem "refile-s3"
gem "rest-client"
gem 'redis'
gem 'sidekiq'
gem 'sinatra'
gem 'devise'
gem 'will_paginate'
gem 'postmark-rails'
gem 'memcachier'
gem 'dalli'
gem 'newrelic_rpm'
gem 'aasm'
gem 'pry-rails' #, groups: [:test, :development]
group :production do
  gem 'rails_12factor'
end
group :development do
  gem 'quiet_assets'
  gem 'spring'
  gem 'dotenv-rails'
  gem "better_errors"
  gem "binding_of_caller"
end
group :test, :development do
  gem 'awesome_print'
  gem 'faker'
  gem 'factory_girl_rails'
  gem "capybara"
  gem "selenium-webdriver"
end
gem 'angular-rails-templates'
gem 'jader'

【问题讨论】:

  • 这通常是由于在某些配置文件或环境文件中初始化了2个记录器引起的。如果您在 github 上发布一个重现该问题的项目,将很容易为您提供进一步的帮助。

标签: ruby-on-rails ruby-on-rails-4 logging


【解决方案1】:

基于此question,以及您所做的:

开始撬动并输入:

 config.logger = Logger.new(STDOUT)

这似乎行得通。

【讨论】:

  • 我应该在哪个文件夹中找到该文件?在 lib 下,我只有资产和任务。
  • 我做了完全相反的事情。开始撬我制作 Rails.logger = Logger.new(STDOUT) 并且我有一个输出。也许您应该清理以前的答案并更新后者?
  • 我很高兴它已修复。您能接受答案吗?除非您可以添加其他内容。