Rails:记录rake任务

时间:2017-04-05 18:49:57

标签: ruby-on-rails ruby-on-rails-4 logging rake-task

我正在尝试将rake任务的输出记录到新的记录器。理想情况下,该解决方案可用于开发和生产。

这是我的任务:

task :clients, [:field] => [:setup_logger] do |t, args|
    clients = Client.all
    problems = []

    group = clients.group_by { |client| client[args[:field]] }
    unique_ids = group.keys

    unique_ids.each do |unique_id|
        problems << [unique_id, group[unique_id].length] if group[unique_id].length != 1
    end

    if !problems.blank?
        logger = Logger.new("db_issues.log")
        logger.error "look at me"
        logger.close
    end

    p problems
end

当我运行它时,即使problems不为空,也不会创建新的日志文件。 我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

问题是logger.close,请在服务器启动后查找如下消息:

  

日志写入失败。封闭的流

尝试从代码中删除logger.close并重新启动服务器。