Class: Processor::Observer::Logger

Inherits:
NullObserver show all
Defined in:
lib/processor/observer/logger.rb

Instance Attribute Summary

Attributes inherited from NullObserver

#processor

Instance Method Summary collapse

Methods inherited from NullObserver

#update

Constructor Details

#initialize(logger = nil, options = {}) ⇒ Logger

Returns a new instance of Logger.



10
11
12
13
14
15
16
# File 'lib/processor/observer/logger.rb', line 10

def initialize(logger = nil, options = {})
  @logger_source = logger
  @messages = options.fetch :messages, nil
  @messages = OpenStruct.new @messages if @messages.is_a? Hash

  super options
end

Instance Method Details

#after_error(result, exception) ⇒ Object



40
41
42
# File 'lib/processor/observer/logger.rb', line 40

def after_error(result, exception)
  logger.fatal "Processing #{processor_name} FAILED: #{exception.backtrace}"
end

#after_finalize(result) ⇒ Object



31
32
33
34
# File 'lib/processor/observer/logger.rb', line 31

def after_finalize(result)
  logger.info "Processing of #{processor_name} finished."
  messenger.message messages.finished
end

#after_process(result, record) ⇒ Object



27
28
29
# File 'lib/processor/observer/logger.rb', line 27

def after_process(result, record)
  logger.info "Processed #{id_for record}: #{result}"
end

#after_record_error(result, record, exception) ⇒ Object



36
37
38
# File 'lib/processor/observer/logger.rb', line 36

def after_record_error(result, record, exception)
  logger.error "Error processing #{id_for record}: #{exception}"
end

#after_start(result) ⇒ Object



18
19
20
21
# File 'lib/processor/observer/logger.rb', line 18

def after_start(result)
  logger.info "Processing of #{processor_name} started."
  messenger.info messages.initialized
end

#before_process(record) ⇒ Object



23
24
25
# File 'lib/processor/observer/logger.rb', line 23

def before_process(record)
  logger.debug "Record #{id_for record} is going to be processed"
end

#loggerObject



44
45
46
47
48
49
50
51
52
53
54
# File 'lib/processor/observer/logger.rb', line 44

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 = ::Logger::INFO
      end
    end
  end
end