如何禁用Rails SQL日志?

有没有办法在Rails中禁用SQL日志,而不是更改日志级别? 我有一些logger.debug语句,我想在我的ActiveRecord模型中打印出来,但我想隐藏SQL语句。

您可以对它进行moneky-patch,将其放在config/initializers/disable_ar_logging.rb

 class ActiveRecord::ConnectionAdapters::AbstractAdapter def log_info(*args); end end 

担,

这是生产或开发模式吗? 如果它是开发模式,这通常是我做的:

 logger.info("DEBUG my message here") logger.info("DEBUG #{my_object.inspect}") tail -f log/development | grep DEBUG 

以下是Rails 3.0.5中对我有用的内容:

  class ActiveRecord::ConnectionAdapters::AbstractAdapter def log(sql, name) name ||= "SQL" yield rescue Exception => e message = "#{e.class.name}: #{e.message}: #{sql}" @logger.debug message if @logger raise translate_exception(e, message) end end 

这是删除写入日志的行的方法 。 SQL缓存命中仍然显示在日志中,我还没有想出如何禁用它们。