为Rails 3.1.1关闭详细的sql/ActiveRecord

Abd*_*bdo 20 ruby activerecord ruby-on-rails ruby-on-rails-3.1

虽然SQL/ActiveRecord调用的详细功能在大多数情况下都很有用,但我希望在我进行循环的情况下将其关闭.

有没有办法把它关掉?

irb(main):055:0> City.first
  ?[1m?[35mCity Load (1.0ms)?[0m  SELECT `cities`.* FROM `cities` LIMIT 1
=> #<City id: 1, name: "bla bla", state_id: 1, zip: nil, country_id: nil,
created_at: "2011-03-27 14:11:28", updated_at: "2011-08-16 11:14:36", guid: "5PK
fvvz2Gsi">
Run Code Online (Sandbox Code Playgroud)

Mik*_*kin 25

在控制台中:
禁用:

old_logger = ActiveRecord::Base.logger
ActiveRecord::Base.logger = nil
Run Code Online (Sandbox Code Playgroud)

启用:

ActiveRecord::Base.logger = old_logger
Run Code Online (Sandbox Code Playgroud)

  • 另一种方法,如http://stackoverflow.com/questions/7759321/disable-rails-3-1-sql-logging中提到的,是`ActiveRecord :: Base.logger.level = 1`来打开日志记录off(将日志级别设置为info)和`ActiveRecord :: Base.logger.level = 0`将其重新打开(将日志级别设置为debug). (41认同)

dre*_*ish 5

在 Rails 4 中,我对规范中间的 ActiveRecord 记录 SQL 语句感到恼火,因此我通过将其添加到以下内容来禁用它config/environments/test.rb

Rails.application.configure do
  # ... 
  config.log_level = :info
end
Run Code Online (Sandbox Code Playgroud)