如何在脚本/控制台中禁用记录器

Cod*_*ama 12 console ruby-on-rails irb

在我的.irbrc文件中,我需要'logger'来让我看到在脚本/控制台中查询ActiveRecords时执行的SQL.

我的问题是,如何暂时关闭记录器,以便它不会仅针对一些ActiveRecord查询显示SQL?

cld*_*ker 15

要在脚本/控制台中切换日志记录,请使用以下内容:

def show_log
  change_log(STDOUT)
end

def hide_log
  change_log(nil)
end

def change_log(stream, colorize=true)
  ActiveRecord::Base.logger = ::Logger.new(stream)
  ActiveRecord::Base.clear_all_connections!
  ActiveRecord::Base.colorize_logging = colorize
end
Run Code Online (Sandbox Code Playgroud)

  • 很酷,我喜欢这个!虽然对于Rails 3,您需要取出change_log方法的最后一行.此外,为该方法返回nil将提供更清晰的"切换"输出. (6认同)