Rails: 记录 rake 任务

Rails: Log 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不是空白,也没有创建新的日志文件。 我该如何完成?

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

log writing failed. closed stream

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