Class: InjectedLogger::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/injectedlogger/logger.rb

Constant Summary collapse

UNKNOWN =
:unknown
LOGLEVELS =
[:debug, :verbose, :notice, :info, :warn, :error, :critical, :fatal, :unknown]

Instance Attribute Summary collapse

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &blk) ⇒ Object



83
84
85
86
87
# File 'lib/injectedlogger/logger.rb', line 83

def method_missing(method, *args, &blk)
  logger.send method, *args, &blk
rescue NoMethodError
  super
end

Instance Attribute Details

#after_hookObject

Returns the value of attribute after_hook.



38
39
40
# File 'lib/injectedlogger/logger.rb', line 38

def after_hook
  @after_hook
end

#fallbackObject

Returns the value of attribute fallback.



37
38
39
# File 'lib/injectedlogger/logger.rb', line 37

def fallback
  @fallback
end

#level_infoObject

Returns the value of attribute level_info.



37
38
39
# File 'lib/injectedlogger/logger.rb', line 37

def level_info
  @level_info
end

#levelsObject

Returns the value of attribute levels.



37
38
39
# File 'lib/injectedlogger/logger.rb', line 37

def levels
  @levels
end

#prefixObject

Returns the value of attribute prefix.



37
38
39
# File 'lib/injectedlogger/logger.rb', line 37

def prefix
  @prefix
end

Instance Method Details

#add_levels(*levels) ⇒ Object



72
73
74
75
76
# File 'lib/injectedlogger/logger.rb', line 72

def add_levels(*levels)
  lvls = self.levels + levels
  lvls.uniq!
  self.levels = lvls
end

#inject(logger_obj, levels: LOGLEVELS, fallback: UNKNOWN, prefix: nil) ⇒ Object



44
45
46
47
48
49
# File 'lib/injectedlogger/logger.rb', line 44

def inject(logger_obj, levels: LOGLEVELS, fallback: UNKNOWN, prefix: nil)
  if logger and logger != logger_obj
    raise InUse, "#{self} was already using logger #{logger}"
  end
  inject! logger_obj, levels: levels, fallback: fallback, prefix: prefix
end

#inject!(logger_obj, levels: LOGLEVELS, fallback: UNKNOWN, prefix: nil) ⇒ Object



51
52
53
54
55
56
57
58
59
60
# File 'lib/injectedlogger/logger.rb', line 51

def inject!(logger_obj, levels: LOGLEVELS, fallback: UNKNOWN, prefix: nil)
  # allow injecting ourselves without stacking delegators
  logger_obj = logger_obj.send :logger if logger_obj.is_a? self.class
  self.logger = logger_obj
  set_prefix prefix
  set_levels levels
  set_fallback fallback
  add_methods
  self
end

#injected?Boolean

Returns:

  • (Boolean)


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

def injected?
  not logger.nil?
end

#respond_to_missing?(method, priv = false) ⇒ Boolean

Returns:

  • (Boolean)


89
90
91
# File 'lib/injectedlogger/logger.rb', line 89

def respond_to_missing?(method, priv = false)
  logger.respond_to?(method, priv) || super
end