【发布时间】:2016-12-19 16:56:06
【问题描述】:
我正在使用 rails 5 构建一个 ruby on rails 应用程序,并且我有许多想要记录信息的 rake 任务。但是,当我尝试访问记录器时,出现错误:未定义的局部变量或方法`记录器'
我在 lib/tasks 中有我的 rake 任务,并且我已经在 production.rb 和 development.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)
知道如何将记录器合并到 rake 任务中吗?我知道我可以简单地使用 puts 语句打印到标准输出,但最终我希望拥有每日日志文件,并且我希望将我的 rake 任务包含在这些文件中
回答: 只需添加@Joel_Blum 答案中给出的环境标签。此外,在 development.rb 中,行
config.logger = ActiveSupport::TaggedLogging.new(logger)
需要:
config.logger = ActiveSupport::TaggedLogging.new(config.logger)
【问题讨论】:
-
我看到并认为我的问题有所不同,因为我最初添加了环境。然而,实际的问题是 development.rb 中的一个简单的错字
-
还是谢谢你!
标签: ruby-on-rails ruby logging rake-task