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