Class: FreeZipcodeData::Logger

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/free_zipcode_data/logger.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(provider = default_logger) ⇒ Logger

Returns a new instance of Logger.



12
13
14
# File 'lib/free_zipcode_data/logger.rb', line 12

def initialize(provider = default_logger)
  @log_provider = provider
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(meth, *args, &block) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/free_zipcode_data/logger.rb', line 23

def method_missing(meth, *args, &block)
  if log_provider.respond_to?(meth)
    log_provider.send(meth, *args, &block)
  else
    super
  end
end

Instance Attribute Details

#log_providerObject

Returns the value of attribute log_provider.



10
11
12
# File 'lib/free_zipcode_data/logger.rb', line 10

def log_provider
  @log_provider
end

Instance Method Details

#log_exception(e, data = {}) ⇒ Object



16
17
18
19
20
21
# File 'lib/free_zipcode_data/logger.rb', line 16

def log_exception(e, data = {})
  msg = "EXCEPTION : #{e.class.name} : #{e.message}"
  msg += "\n data : #{data.inspect}" if data && !data.empty?
  msg += "\n  #{e.backtrace[0, 6].join("\n  ")}"
  log_provider.error(msg)
end

#respond_to?(meth, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
34
35
36
37
# File 'lib/free_zipcode_data/logger.rb', line 31

def respond_to?(meth, include_private = false)
  if log_provider.respond_to?(meth)
    true
  else
    super
  end
end

#verbose(msg) ⇒ Object



39
40
41
# File 'lib/free_zipcode_data/logger.rb', line 39

def verbose(msg)
  info(msg) if options&.verbose
end