2011-05-11 6 views
0

일반적으로 레일즈 앱에서는 puts 또는 Rails.logger을 쓰면 콘솔에 데이터가 출력됩니다. 그러나 어떤 이유로 든 lib에있는 코드로 이동하면 해당 스트림에 기록 된 내용이 "삼켜 지거나"즉 stdout으로 끝나지 않습니다! 이 디버깅을위한 전략은 무엇입니까?lib에있는 디버깅 물건

감사합니다.

답변

0

로거는 lib 폴더의 클래스에서 올바르게 작동합니다. 모든 lib/* 내용은 자동으로 다시로드되지 않으므로 Rails.logger 행을 삽입 한 후 서버를 다시 시작하십시오.

1

ActiveSupport::BufferedLogger의 희생자가 될 수 있습니다. 로그 출력을 버퍼링하고 요청시 플러시합니다. lib 파일에서 요청하지 않기 때문에 (힌트 : 컨트롤러/모델/요청에 사용 된 모든 것이 자동으로 수행됩니다), 그러면 간단히 알 수 없습니다.

Rails.logger.auto_flushing = true 

그런 다음 당신은 당신의 마음의 콘텐츠에 다른 Rails.logger 메서드를 호출 할 수 있습니다 : 당신이해야 할 일은

당신이 그것을 필요로 할 때마다 그것을 할 그것을 말할 수 있습니다.

+0

나는 이것이 사실이라고 생각한다! 나는 이것을 시도해보고 Log4r로 옮길 생각을하고있다. –