콘솔에서 Rails SQL 로깅 비활성화
콘솔에서 명령을 실행할 때 SQL 쿼리 로깅을 비활성화하는 방법이 있습니까? 콘솔에서 명령을 사용하여 비활성화하고 다시 활성화 할 수 있다면 이상적입니다.
무언가를 디버깅하고 "puts"를 사용하여 관련 데이터를 인쇄하려고합니다. 그러나 SQL 쿼리 출력으로 인해 읽기가 어렵습니다.
편집 : 내 코드 이외의 것이 logger를 호출하려고하면 로거를 nil로 설정하면 오류가 발생하기 때문에 다른 해결책을 찾았습니다.
로거를 설정하는 대신 로거 nil
레벨을로 설정할 수 있습니다 1
.
ActiveRecord::Base.logger.level = 1 # or Logger::INFO
끄려면 :
old_logger = ActiveRecord::Base.logger
ActiveRecord::Base.logger = nil
다시 켜려면 :
ActiveRecord::Base.logger = old_logger
AR에서 잠재적으로 다른 로깅을 허용하는 다소 깨끗한 것으로 생각되는 변형이 있습니다. config / environments / development.rb에서 :
config.after_initialize do
ActiveRecord::Base.logger = Rails.logger.clone
ActiveRecord::Base.logger.level = Logger::INFO
end
콘솔에 적합한 솔루션은 아니지만 Rails에는이 문제에 대한 방법이 있습니다. Logger # silence
ActiveRecord::Base.logger.silence do
# the stuff you want to be silenced
end
누군가가 실제로 로깅 수준을 변경하지 않고 AR 모델에서 로깅을 유지하면서 SQL 문 로깅 을 실제로 중단 하려는 경우 :
로그에 기록하는 행 (어쨌든 Rails 3.2.16에서)은 debug
in에 대한 호출 입니다 lib/active_record/log_subscriber.rb:50
.
해당 디버그 방법은에 의해 정의됩니다 ActiveSupport::LogSubscriber
.
따라서 로깅을 다음과 같이 덮어 써서 녹아웃 할 수 있습니다.
module ActiveSupport
class LogSubscriber
def debug(*args, &block)
end
end
end
Rails 4의 경우 환경 파일에 다음을 넣을 수 있습니다.
# /config/environments/development.rb
config.active_record.logger = nil
나는 이것을 사용했다 : config.log_level = :info
편집config/environments/performance.rb
SQL 출력을 거부하고 렌더링과 중요한 정보 만 표시합니다.
Rails 3.2에서는 config / environment / development.rb에서 다음과 같은 작업을 수행하고 있습니다.
module MyApp
class Application < Rails::Application
console do
ActiveRecord::Base.logger = Logger.new( Rails.root.join("log", "development.log") )
end
end
end
참고로 Rails 2에서 할 수있는 일
ActiveRecord::Base.silence { <code you don't want to log goes here> }
do end
원하는 경우 중괄호를 블록으로 바꿀 수 있습니다 .
참고 URL : https://stackoverflow.com/questions/7759321/disable-rails-sql-logging-in-console
'Programing' 카테고리의 다른 글
오토 매퍼 : 새 객체를 만들지 않고 속성 값 업데이트 (0) | 2020.04.10 |
---|---|
C #에서 대괄호 연산자를 어떻게 과부하합니까? (0) | 2020.04.10 |
JavaScript에서 문자열을 부동 소수점으로 변환하는 방법은 무엇입니까? (0) | 2020.04.10 |
힘내 수정, 삭제 및 추적되지 않은 모든 파일을 추가 하시겠습니까? (0) | 2020.04.10 |
런타임시 Java 주석 스캔 (0) | 2020.04.10 |