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
17
18
19
20
21
22
# 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

Instance Method Details

#after_finalize(result) ⇒ Object



37
38
39
40
# 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) ⇒ Object



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

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

#after_start(result) ⇒ Object



24
25
26
27
# 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) ⇒ Object



46
47
48
# File 'lib/processor/observer/logger.rb', line 46

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

#before_process(record) ⇒ Object



29
30
31
# 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) ⇒ Object



42
43
44
# File 'lib/processor/observer/logger.rb', line 42

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

#loggerObject



50
51
52
53
54
55
56
57
58
59
60
# 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