diff --git a/app/lib/duplicate_records_logger.rb b/app/lib/duplicate_records_logger.rb new file mode 100644 index 000000000..6fda1a5d5 --- /dev/null +++ b/app/lib/duplicate_records_logger.rb @@ -0,0 +1,21 @@ +class DuplicateRecordsLogger + def info(message) + logger.info(message) + end + + def logger + @logger ||= ActiveSupport::Logger.new(log_file).tap do |logger| + logger.formatter = Rails.application.config.log_formatter + end + end + + private + + def log_file + File.join(File.dirname(Rails.application.config.default_log_file), log_filename) + end + + def log_filename + "duplicate_records.log" + end +end diff --git a/lib/tasks/polls.rake b/lib/tasks/polls.rake index 689ecc335..b6040a127 100644 --- a/lib/tasks/polls.rake +++ b/lib/tasks/polls.rake @@ -2,6 +2,8 @@ namespace :polls do desc "Removes duplicate poll voters" task remove_duplicate_voters: :environment do logger = ApplicationLogger.new + duplicate_records_logger = DuplicateRecordsLogger.new + logger.info "Removing duplicate voters in polls" Tenant.run_on_each do @@ -16,10 +18,12 @@ namespace :polls do voter.delete tenant_info = " on tenant #{Tenant.current_schema}" unless Tenant.default? - logger.info "Deleted duplicate record with ID #{voter.id} " \ - "from the #{Poll::Voter.table_name} table " \ - "with user_id #{user_id} " \ - "and poll_id #{poll_id}" + tenant_info.to_s + log_message = "Deleted duplicate record with ID #{voter.id} " \ + "from the #{Poll::Voter.table_name} table " \ + "with user_id #{user_id} " \ + "and poll_id #{poll_id}" + tenant_info.to_s + logger.info(log_message) + duplicate_records_logger.info(log_message) end end end