Способ отключить Rails SQL логи? - PullRequest
6 голосов
/ 28 октября 2009

Есть ли способ отключить журналы SQL в Rails, кроме изменения уровня журнала? У меня есть несколько операторов logger.debug, которые я хотел бы распечатать в моих моделях ActiveRecord, но я хочу скрыть операторы SQL.

Ответы [ 3 ]

3 голосов
/ 28 октября 2009

Вы можете запатентовать его, поместить в файл, например config/initializers/disable_ar_logging.rb:

class ActiveRecord::ConnectionAdapters::AbstractAdapter
  def log_info(*args); end
end
1 голос
/ 28 октября 2009

Dan

Это в режиме производства или разработки? Если это режим разработки, это обычно то, что я делаю:

logger.info("DEBUG my message here")
logger.info("DEBUG #{my_object.inspect}")

tail -f log/development | grep DEBUG
0 голосов
/ 03 мая 2011

Вот что у меня сработало в 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 все еще отображаются в журнале, и я не выяснил, как их отключить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...