rspec을 실행할 때 Rails.logger에서 콘솔 / stdout으로 인쇄하는 방법은 무엇입니까?
제목과 동일 : Rails.logger
rspec을 실행할 때 콘솔 / stdout에 인쇄 하는 방법은 무엇입니까? 예 :
Rails.logger.info "I WANT this to go to console/stdout when rspec is running"
puts "Like how the puts function works"
나도 Rails.logger
가고 싶어요 log/test.log
.
Rails 3.x의 경우 다음에서 로거를 구성합니다 config/environments/test.rb
.
config.logger = Logger.new(STDOUT)
config.logger.level = Logger::ERROR
이렇게하면 테스트 중에 기록 된 모든 오류가 STDOUT에 삽입됩니다. 출력을 STDERR로 라우팅하거나 대신 다른 로그 수준을 사용할 수 있습니다.
이러한 메시지를 콘솔과 로그 파일 모두에 전송하려면 Ruby의 내장 Logger 클래스 보다 더 강력한 것이 필요합니다 . 로깅 보석은 당신이 원하는 것을 할 것입니다. 에 추가 Gemfile
한 다음에 두 개의 어 펜더를 설정 하십시오 config/environments/test.rb
.
logger = Logging.logger['test']
logger.add_appenders(
Logging.appenders.stdout,
Logging.appenders.file('example.log')
)
logger.level = :info
config.logger = logger
Rails 4.x의 경우 로그 수준이 Rails 3.x와 약간 다르게 구성됩니다.
이것을 추가 config/environment/test.rb
# Enable stdout logger
config.logger = Logger.new(STDOUT)
# Set log level
config.log_level = :ERROR
로거 레벨은 https://github.com/rails/rails/blob/v4.2.4/railties/lib/rails/application/bootstrap.rb#L70config.log_level
에서 로거 인스턴스에 설정됩니다 .
환경 변수
보너스로 다음과 같은 기본값으로 환경 변수를 사용하여 로그 수준을 덮어 쓸 수 있습니다.
# default :ERROR
config.log_level = ENV.fetch("LOG_LEVEL", "ERROR")
그런 다음 셸에서 테스트를 실행합니다.
# Log level :INFO (the value is uppercased in bootstrap.rb)
$ LOG_LEVEL=info rake test
# Log level :ERROR
$ rake test
로그를 백그라운드 작업 (&)으로 추적하면 rspec 출력과 인터리브됩니다.
tail -f log/test.log &
bundle exec rspec
내가 좋아하는 솔루션은 rspec 출력을 실제 레일 로그 출력과 별도로 유지하기 때문에 다음을 수행하는 것입니다.
- 두 번째 터미널 창 또는 탭을 열고 rspec을 실행중인 기본 터미널과 새 터미널을 모두 볼 수 있도록 정렬합니다.
- 두 번째 창에서 tail 명령을 실행하여 테스트 환경에서 rails 로그를 확인합니다. 기본적으로 이것은 Windows 사용자 와 비슷
$ tail -f $RAILS_APP_DIR/logs/test.log
하거나tail -f $RAILS_APP_DIR\logs\test.log
- rspec 제품군 실행
당신이 사용하여 ITerm 같은 다중 창 터미널을 실행하는 경우,이 훨씬 더 재미되고, 당신은 rspec
과 test.log
나란히 출력측.
당신은 메시지를 Rails.logger.info로 보내고 디버깅을 위해 그것을 넣어서 사용하는 spec_helper.rb에 메소드를 정의 할 수 있습니다 :
def log_test(message)
Rails.logger.info(message)
puts message
end
'Program Tip' 카테고리의 다른 글
zip 아카이브에서 하나의 파일을 업데이트하는 방법 (0) | 2020.11.03 |
---|---|
PHP에서 사용자 에이전트를 얻는 방법 (0) | 2020.11.03 |
Numpy : 범위 내의 요소 찾기 (0) | 2020.11.03 |
신속하게 숫자에 쉼표를 추가하는 방법? (0) | 2020.11.03 |
ConfigurationBuilder를 사용하여 기본 경로 설정 (0) | 2020.11.03 |