6

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 I want to hide the SQL statements.

3 Answers 3

3

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
Sign up to request clarification or add additional context in comments.

1 Comment

This answer looks out of date, It doesn't work for my using active_record 4.2.8
1

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

1 Comment

This isn't helpful, it does not at all disable logging.
0

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.