class Kitcat::Logging
Kitcat::Logging
is used to encapsulate the functionality of Framework
related to logging.
It needs to be initialized with the migration_name
because this is used to build the relevant log filename.
Attributes
migration_name[R]
migration_strategy[R]
Public Class Methods
new(migration_strategy, migration_name)
click to toggle source
# File lib/kitcat/logging.rb, line 11 def initialize(migration_strategy, migration_name) @migration_name = build_migration_name(migration_name, migration_strategy) end
Public Instance Methods
end_logging()
click to toggle source
# File lib/kitcat/logging.rb, line 23 def end_logging logger.info '...end of processing' end
log_failure(item)
click to toggle source
# File lib/kitcat/logging.rb, line 31 def log_failure(item) log_line(item) { |method| logger.error "...error while processing item: #{item.try(method)}" } end
log_file_path()
click to toggle source
# File lib/kitcat/logging.rb, line 15 def log_file_path @log_file_path ||= File.join(log_dir, build_log_file_name) end
log_interrupt_callback_finish()
click to toggle source
# File lib/kitcat/logging.rb, line 39 def log_interrupt_callback_finish logger.info '......end of interrupt callback after user interruption' end
log_interrupt_callback_start()
click to toggle source
# File lib/kitcat/logging.rb, line 35 def log_interrupt_callback_start logger.info '...user interrupted, calling interrupt callback on migration strategy...' end
log_success(item)
click to toggle source
# File lib/kitcat/logging.rb, line 27 def log_success(item) log_line(item) { |method| logger.info "...successfully processed item: #{item.try(method)}" } end
start_logging()
click to toggle source
# File lib/kitcat/logging.rb, line 19 def start_logging logger.info 'Start Processing...' end
Private Instance Methods
build_log_file_name()
click to toggle source
# File lib/kitcat/logging.rb, line 54 def build_log_file_name "migration-#{migration_name}-#{timestamp}.log" end
build_migration_name(migration_name, migration_strategy)
click to toggle source
# File lib/kitcat/logging.rb, line 45 def build_migration_name(migration_name, migration_strategy) result = migration_name || migration_strategy.class.name.delete(':').underscore.upcase result.gsub(/\W/, '').upcase end
log_dir()
click to toggle source
# File lib/kitcat/logging.rb, line 50 def log_dir @log_dir ||= FileUtils.mkdir_p(File.join(Dir.pwd, 'log')) end
log_line(item) { |method| ... }
click to toggle source
# File lib/kitcat/logging.rb, line 66 def log_line(item) method = item.respond_to?(:to_log) ? :to_log : :to_s yield method end
logger()
click to toggle source
# File lib/kitcat/logging.rb, line 62 def logger @logger ||= Logger.new(log_file_path) end
timestamp()
click to toggle source
# File lib/kitcat/logging.rb, line 58 def timestamp Time.now.to_s(:number) end