class Processor::Observer::Logger
Public Class Methods
new(logger = nil, options = {})
click to toggle source
Calls superclass method
# File lib/processor/observer/logger.rb, line 10 def initialize(logger = nil, options = {}) if logger.is_a? Hash @log_level = logger.fetch :level, ::Logger::INFO else @logger_source = logger end @messages = options.fetch :messages, nil @messages = OpenStruct.new @messages if @messages.is_a? Hash super options end
Public Instance Methods
after_finalize(result)
click to toggle source
# File lib/processor/observer/logger.rb, line 37 def after_finalize(result) logger.info "Processing of #{processor_name} finished." messenger.message messages.finished end
after_process(result, record)
click to toggle source
# File lib/processor/observer/logger.rb, line 33 def after_process(result, record) logger.info "Processed #{id_for record}: #{result}" end
after_start(result)
click to toggle source
# File lib/processor/observer/logger.rb, line 24 def after_start(result) logger.info "Processing of #{processor_name} started." messenger.info messages.initialized end
before_error(exception)
click to toggle source
# File lib/processor/observer/logger.rb, line 46 def before_error(exception) logger.fatal "Processing #{processor_name} FAILED: #{exception.backtrace}" end
before_process(record)
click to toggle source
# File lib/processor/observer/logger.rb, line 29 def before_process(record) logger.debug "Record #{id_for record} is going to be processed" end
before_record_error(record, exception)
click to toggle source
# File lib/processor/observer/logger.rb, line 42 def before_record_error(record, exception) logger.error "Error processing #{id_for record}: #{exception.inspect}" end
logger()
click to toggle source
# File lib/processor/observer/logger.rb, line 50 def logger @logger ||= begin if @logger_source.is_a? Proc @logger_source.call processor_name else @logger_source or ::Logger.new(create_log_filename(processor_name)).tap do |logger| logger.level = log_level end end end end
Private Instance Methods
create_log_filename(processor_name)
click to toggle source
# File lib/processor/observer/logger.rb, line 80 def create_log_filename(processor_name) unless File.directory? log_directory FileUtils.mkdir log_directory messenger.warn "Created new directory for logs: #{File.absolute_path log_directory}" end @log_file_name = "#{log_directory}/#{processor_name}_on_#{current_time_string}.log" end
current_time_string()
click to toggle source
# File lib/processor/observer/logger.rb, line 93 def current_time_string Time.now.gmtime.strftime "%Y-%m-%d_%H%M%S_UTC" end
id_for(record)
click to toggle source
# File lib/processor/observer/logger.rb, line 97 def id_for record return processor.record_id record if processor.respond_to? :record_id record.to_s.strip end
log_directory()
click to toggle source
# File lib/processor/observer/logger.rb, line 89 def log_directory "log" end
log_level()
click to toggle source
# File lib/processor/observer/logger.rb, line 64 def log_level @log_level ||= ::Logger::INFO end
messages()
click to toggle source
# File lib/processor/observer/logger.rb, line 68 def messages @messages ||= LoggerMessages.new logger end
processor_name()
click to toggle source
# File lib/processor/observer/logger.rb, line 72 def processor_name @processor_name ||= begin @processor = Subroutine::Name.new processor unless processor.respond_to? :name processor.name end end