레일 5를 사용하여 레일즈 애플리케이션에 루비를 만들고 있는데, 정보를 기록하고 싶은 몇 가지 레이크 작업이 있습니다. 그러나 로거에 액세스하려고하면 정의되지 않은 로컬 변수 또는 메서드`logger '가 발생합니다.rake 작업에서 레일 로거 사용하기, 레일 5
lib/tasks에 내 레이크 작업이 있고 프로덕션 .rb 및 로거 모두에서 로거를 선언했습니다.
namespace :some_namespace do
desc "a description"
task :scrape_info do
include Scraper
startTime = Time.now
Rails.logger.tagged("Scraper") { Rails.logger.info "Beginning scrape: #{startTime} " }
Scraper.scrape_info
endTime = Time.now
Rails.logger.tagged("Scraper") { Rails.logger.info "Finished scrape: #{endTime} " }
end
end
내가 로거가 정의한 development.rb에서 발췌 :
config.logger = Logger.new(STDOUT)
config.log_level = :info
config.logger = ActiveSupport::TaggedLogging.new(logger)
모든 아이디어를 어떻게 incorpora 여기를
developement.rb
는 예를 들어 작업입니다 로거를 레이크 작업에 사용 하시겠습니까? 나는 단순히 표준 출력에 인쇄 할 박았 문을 사용할 수 있지만 결국 나는 매일 로그 파일을 가지고 싶습니다, 나는 내 레이크 작업이 해당 파일에 포함하고자하는 것을 이해답변 : 간단히 @Joel_Blum의 응답에 주어진 환경 태그를 추가하십시오. 또한, 라인, development.rb에
config.logger = ActiveSupport::TaggedLogging.new(logger)
은 할 필요가 :
config.logger = ActiveSupport::TaggedLogging.new(config.logger)
가능한 복제 [레이크에있는 '환경'작업 무엇?] (http://stackoverflow.com/questions/7044714/whats-the-environment-task-in-rake) –
가 나는 것을보고 원래 환경이 추가 되었기 때문에 내 문제가 다르다고 생각했습니다. 그러나 실제 문제는 development.rb에서 간단한 오타였습니다. –
어쨌든 고마워요! –