lib/reptile/delta_monitor.rb in reptile-0.0.1 vs lib/reptile/delta_monitor.rb in reptile-0.0.4

- old
+ new

@@ -1,5 +1,7 @@ +require 'logger' + module Reptile # This monitor compares the row counts for each table for each master and slave. class DeltaMonitor # Set the user settings for a user that has global SELECT privilidgess def self.user=(user_settings) @@ -10,19 +12,16 @@ def self.user raise "You need to specify a user!" if @user.nil? @user end - def self.open_log() - logFile = 'db_delta.log' - @logFileObj = File.open(logFile, "a") + def self.logger=(new_logger) + @logger = new_logger end - - def self.log(msg) - open_log if @logFileObj.nil? - puts msg - @logFileObj.puts msg + + def self.get_logger + @logger ||= Logger.new(STDOUT) end # Retrieve the active database connection. Nil of none exists. def self.connection ActiveRecord::Base.connection @@ -44,21 +43,27 @@ end print_deltas(db_name, deltas, master_configs) deltas + rescue Exception => e + get_logger.error "Error: Caught #{e}" + get_logger.error "DB Name: #{db_name}" + get_logger.error "Master Configs: #{master_configs.inspect}" + get_logger.error "Slave Configs: #{slave_configs.inspect}" + raise e end # Prints stats about the differences in number of rows between the master and slave def self.print_deltas(db_name, deltas, configs) non_zero_deltas = deltas.select{|table, delta| not delta.zero?} if non_zero_deltas.size.zero? - log "Replication counts A-OK for #{db_name} on #{configs['host']} @ #{Time.now}" + get_logger.info "Replication counts A-OK for #{db_name} on #{configs['host']} @ #{Time.now}" else - log "Replication Row Count Deltas for #{db_name} on #{configs['host']} @ #{Time.now}" - log "There #{non_zero_deltas.size > 1 ? 'are' : 'is'} #{non_zero_deltas.size} #{non_zero_deltas.size > 1 ? 'deltas' : 'delta'}" + get_logger.info "Replication Row Count Deltas for #{db_name} on #{configs['host']} @ #{Time.now}" + get_logger.info "There #{non_zero_deltas.size > 1 ? 'are' : 'is'} #{non_zero_deltas.size} #{non_zero_deltas.size > 1 ? 'deltas' : 'delta'}" non_zero_deltas.each do |table, delta| - log " #{table} table: #{delta}" unless delta.zero? + get_logger.info " #{table} table: #{delta}" unless delta.zero? end end end # Returns an array of strings containing the table names \ No newline at end of file