2016-12-19 13 views
3

レール5を使用して、レールアプリケーションでルビーを構築しています。情報を記録したいいくつかのレーキタスクがあります。しかし、私がロガーにアクセスしようとすると、未定義のローカル変数またはメソッド `logger 'rakeタスクでレールロガーを使用する、レール5

私はlib/tasksで自分のレーキタスクを持っており、production.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

は、例えば仕事ですロガーをレーキタスクに使用しますか?私は単にstdoutに印刷するプットステートメントを使用することができますが、結局、私は毎日のログファイルを持っているしたいのですが、私は私のすくいタスクがそれらのファイルに含まれることを希望することを理解

ANSWER:単に @Joel_Blumから返された環境タグを追加します。また、ライン、development.rbに

config.logger = ActiveSupport::TaggedLogging.new(logger) 

をする必要があります:

config.logger = ActiveSupport::TaggedLogging.new(config.logger) 
+0

可能な重複[レーキで「環境」タスクは何?](http://stackoverflow.com/questions/7044714/whats-the-environment-task-in-rake) –

+0

は、私はそれを見て、もともとは環境が追加されていたので、私の問題は異なっていると思った。しかし、実際の問題はdevelopment.rbの単純なタイプミスでした –

+0

とにかくありがとう! –

答えて

3

てみ環境を追加し、これはあなたのレールのアプリをロードする効果があります。

task :scrape_info => :environment do 
    ... 
end 
+0

ありがとう!これは助けになりました - 環境部分を追加しましたが、私はまだ同じエラーがありました。私のエラーの本当の原因はdevelopment.rbの誤植でした –

関連する問題