Is there a way to disable SQL logs in Rails, other than changing the log level? I\'ve got some logger.debug statements that I\'d like to print out in my ActiveRecord models, but
You can moneky-patch it, put this in a file such as config/initializers/disable_ar_logging.rb
:
class ActiveRecord::ConnectionAdapters::AbstractAdapter
def log_info(*args); end
end
Dan,
Is this in production or development mode? If it's development mode this is usually what I do:
logger.info("DEBUG my message here")
logger.info("DEBUG #{my_object.inspect}")
tail -f log/development | grep DEBUG
Here's what worked for me in 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
It's this method with the line that writes to the log removed. SQL cache hits are still displayed in the log and I haven't figured out how to disable those.