class InjectedLogger::Logger
Constants
- LOGLEVELS
- UNKNOWN
Attributes
after_hook[RW]
fallback[R]
level_info[RW]
levels[R]
logger[RW]
prefix[R]
Public Instance Methods
add_levels(*levels)
click to toggle source
# File lib/injectedlogger/logger.rb, line 72 def add_levels(*levels) lvls = self.levels + levels lvls.uniq! self.levels = lvls end
fallback=(level)
click to toggle source
# File lib/injectedlogger/logger.rb, line 78 def fallback=(level) set_fallback level add_methods end
inject(logger_obj, levels: LOGLEVELS, fallback: UNKNOWN, prefix: nil)
click to toggle source
# 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)
click to toggle source
# 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?()
click to toggle source
# File lib/injectedlogger/logger.rb, line 40 def injected? not logger.nil? end
levels=(levels)
click to toggle source
# File lib/injectedlogger/logger.rb, line 67 def levels=(levels) set_levels(levels) add_methods end
method_missing(method, *args, &blk)
click to toggle source
Calls superclass method
# File lib/injectedlogger/logger.rb, line 83 def method_missing(method, *args, &blk) logger.send method, *args, &blk rescue NoMethodError super end
prefix=(prefix)
click to toggle source
# File lib/injectedlogger/logger.rb, line 62 def prefix=(prefix) set_prefix prefix add_methods end
respond_to_missing?(method, priv = false)
click to toggle source
Calls superclass method
# File lib/injectedlogger/logger.rb, line 89 def respond_to_missing?(method, priv = false) logger.respond_to?(method, priv) || super end
Private Instance Methods
add_methods()
click to toggle source
# File lib/injectedlogger/logger.rb, line 110 def add_methods old_levels = level_info ? level_info[:supported] : [] self.level_info = InjectedLogger::Delegator.delegate_levels( from: logger, on: self, prefix: prefix, extra_levels: self.levels, old_levels: old_levels, fallback: fallback) set_levels(level_info[:supported]) end
info_message(level_info)
click to toggle source
# File lib/injectedlogger/logger.rb, line 124 def info_message(level_info) message = if level_info[:fallback] "non-native log levels #{level_info[:nonnative].join ', '} emulated" \ " using #{level_info[:fallback].upcase} severity" elsif level_info[:nonnative].any? "unsupported log levels #{level_info[:nonnative].join ', '}" else nil end send level_info[:info], message if message end
ready()
click to toggle source
# File lib/injectedlogger/logger.rb, line 118 def ready level_info[:supported].tap do info_message(level_info) if level_info[:info] end end
set_fallback(level)
click to toggle source
# File lib/injectedlogger/logger.rb, line 106 def set_fallback(level) @fallback = level end
set_levels(levels)
click to toggle source
# File lib/injectedlogger/logger.rb, line 102 def set_levels(levels) @levels = levels end
set_prefix(prefix)
click to toggle source
# File lib/injectedlogger/logger.rb, line 98 def set_prefix(prefix) @prefix = prefix end