Rails 콘솔에서 데이터베이스 출력을 어떻게 숨길 수 있습니까?


103

최신 버전의 Rails에서는 데이터베이스 쿼리가 콘솔에 출력됩니다. 이것은 대부분의 경우 유용하지만보고 싶지 않을 때 어떻게 숨길 수 있습니까?

답변:


177

이를 수행하는 더 좋은 방법은 다음을 콘솔에 입력하는 것입니다.

ActiveRecord::Base.logger.level = 1 

nil로 설정된 로거에 대한 포인터를 사용하려고 시도하는 문제를 방지하기 때문입니다 (출처 : 콘솔에서 Rails SQL 로깅 비활성화 )

다시 켜려면

ActiveRecord::Base.logger.level = 0

31
감사. 다시 켜려면 ActiveRecord::Base.logger.level = 0.
thebenedict

Mongoid로이 작업을 수행하는 방법을 아십니까?
Jesse Farmer

29
ActiveRecord::Base.logger = nil

에서 여기


6
이로 인해 NoMethodErrorActiveRecord가 ActiveRecord::Base.logger아닌 객체가 될 것으로 예상 되는 s가 발생할 수 있습니다 nil.
Aaron B. Russell

9

짧은 대답 ... development.rb 파일 config.log_level에서 다음과 같은 줄이 있도록 값을 변경하거나 추가하십시오.

config.log_level = :info

1
아니요, 이것은 콘솔에서 일어나는 일에 영향을 미치지 않는 것 같습니다. 또한 프로젝트 파일을 변경할 필요가없는 솔루션을 선호합니다.
Roger Ertesvag 2011 년

좋아, 솔루션은 webrick과 함께 작동하지만 다른 서버를 사용하거나 프로덕션 또는 테스트 모드에서 실행 중일 수 있습니까?
madth3

3
로그 파일의 내용을 변경하는 데 사용됩니다. 그러나 문제는 로그 파일이 아니라 레일스 콘솔에 관한 것입니다.
Roger Ertesvag 2011 년

6

내 친구로부터 :

your_query; nil

1
게시물의 품질을 개선하려면 게시물이 문제를 해결하는 방법 / 이유를 포함하십시오.
Mick MacCallum

7
이것은 루비 콘솔이 표현식의 결과를 콘솔로 덤프하는 것을 막을 것입니다. 그러나 ActiveRecord가 SQL 정보를 레일스 로거에 덤프하는 것을 막지는 않을 것입니다.
eremzeit 2013 년

1
이전 댓글 작성자에게 : 이것은 질문에 대한 답변이며 저에게 도움이 된 유일한 답변입니다. 더 많은 사람이 원하는 것은 무엇입니까?
valk

3
나는 이것이 질문에 전혀 대답하지 않는다고 생각합니다. @eremzeit가 말했듯이, 이것은 콘솔에 덤프 된 모든 SQL 쿼리를 중지하지 않으며 해당 명령의 반환 값만 인쇄되는 것을 중지합니다 ...
opsidao

1
그것은하지 반복 결과에 대한 질문하지만 유용한 답변을하지 않습니다
룻거

4

Rails 3.2에서 설정

config.logger.level = Logger::INFO

SQL 출력을 끄는 데 잘 작동했습니다.


그래도 SQL 출력이 로그 파일에 기록됩니까?
Joshua Pinter

-2

나는 당신에게 '조용한 자산'보석을 조언하고 싶지만 이미 필요한 대답을 얻었습니다.

재미있게


1
문제는 로그 파일이 아닌 콘솔로의 출력에 관한 것입니다
Roger Ertesvag
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.