# This was added to make sure the DJ log has the same log level
# as the rails app, and to ensure ActiveRecord uses the same log
# when loaded inside a DJ worker process.

# Set up the logger
Delayed::Worker.logger = Logger.new(File.join(Rails.root, 'log', 'delayed_job.log'))

# Customize the output
Delayed::Worker.logger.formatter = proc do |severity, datetime, progname, msg|
  formatted_severity = sprintf("%-5s","#{severity}")
  "[#{formatted_severity} pid:#{$$}] #{ msg.strip }\n"
end

# If this is specifically a delayed job process, redirect all logs
if caller.last =~ /delayed_job/
  # Ensure all logs for this process write to the delayed job log
  ActiveRecord::Base.logger = Delayed::Worker.logger
  Rails.logger = Delayed::Worker.logger
  ActiveSupport::Cache::Store.logger = Delayed::Worker.logger
  Rails.logger.level = Logger::INFO if Rails.env.production?
end


