Есть ли способ отключить ведение журнала запросов SQL, когда я выполняю команды в консоли? В идеале было бы здорово, если бы я мог просто отключить его и снова включить с помощью команды в консоли.
Я пытаюсь что-то отладить и использую «Put» для распечатки некоторых важных данных. Однако вывод запроса sql затрудняет чтение.
Редактировать: я нашел другое решение, так как установка логгера на ноль иногда приводила к ошибке, если что-то кроме моего кода пыталось вызвать logger.warn
Вместо настройки регистратора nil
вы можете установить уровень регистратора на 1
.
ActiveRecord::Base.logger.level = 1 # or Logger::INFO
sql
ruby-on-rails
console
gylaz
источник
источник
since setting the logger to nil sometimes raised an error
трепло .. Я получил этот при попытке запуститьrake db:migrate
stackoverflow.com/questions/1719212/...Ответы:
Чтобы выключить это:
Чтобы включить его снова:
источник
.irbrc
, который в основном предназначен.bashrc
для консоли Rails. на самом деле вы можете делать практически все,.irbrc
что угодно, например, раскраску синтаксиса, историю, редактировать код в vi, а затем выполнять его в консоли Rails и т. д. Проверьте мой гем,utility_belt
если вы используете Ruby 1.8 или порт Ruby 1.9 называетсяflyrb
.irbrc
это как.bashrc
для вашей рубиновой интерактивной командной строки. Это не вещь рельсов. Я предполагаю, что вы, вероятно, получите ошибки, если попытаетесь ссылаться на классы rails, когда выполняете irb вне среды rails.config/initializers/activerecord_logger.rb
ActiveRecord::Base.logger.level = 1
это гораздо лучший ответ, так как он не вызовет исключений, если вы используете .info и другие.Вот вариант, который я считаю несколько более чистым, который по-прежнему позволяет вести другие журналы из AR. В config / средах / development.rb:
источник
Это не может быть подходящим решением для консоли, но у Rails есть метод для этой проблемы: Logger # silence
источник
Для Rails 4 вы можете поместить следующее в файл окружения:
источник
В случае, если кто-то хочет фактически отключить ведение журнала оператора SQL (без изменения уровня ведения журнала и при сохранении ведения журнала в своих моделях AR):
Строка, которая пишет в журнал (в любом случае в Rails 3.2.16), является вызовом
debug
inlib/active_record/log_subscriber.rb:50
.Этот метод отладки определяется
ActiveSupport::LogSubscriber
.Таким образом, мы можем отключить регистрацию, переписав ее так:
источник
Rails.logger.debug
операторы.Dir.glob( "./lib/*.{rb}" ).each{ | file | require file }
. Имейте в виду, что обезьяноподготовка не одобряется некоторыми. Вероятно, не стоит проверять это в вашем рабочем коде.Я использовал это:
config.log_level = :info
edit-inconfig/environments/performance.rb
Отлично работает для меня, отвергает вывод SQL и показывает только рендеринг и важную информацию.
источник
В Rails 3.2 я делаю что-то вроде этого в config / environment / development.rb:
источник
Так же, как FYI, в Rails 2 вы можете сделать
Очевидно, фигурные скобки можно заменить
do end
блоком, если хотите.источник