Class: InjectedLogger::Logger
- Inherits:
-
Object
- Object
- InjectedLogger::Logger
- 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
-
#after_hook ⇒ Object
Returns the value of attribute after_hook.
-
#fallback ⇒ Object
Returns the value of attribute fallback.
-
#level_info ⇒ Object
readonly
Returns the value of attribute level_info.
-
#levels ⇒ Object
Returns the value of attribute levels.
-
#prefix ⇒ Object
Returns the value of attribute prefix.
Instance Method Summary collapse
- #add_levels(*levels) ⇒ Object
- #inject(logger_obj, levels: LOGLEVELS, fallback: UNKNOWN, prefix: nil) ⇒ Object
- #inject!(logger_obj, levels: LOGLEVELS, fallback: UNKNOWN, prefix: nil) ⇒ Object
- #injected? ⇒ Boolean
- #method_missing(method, *args, &blk) ⇒ Object
- #respond_to_missing?(method, priv = false) ⇒ Boolean
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_hook ⇒ Object
Returns the value of attribute after_hook.
38 39 40 |
# File 'lib/injectedlogger/logger.rb', line 38 def after_hook @after_hook end |
#fallback ⇒ Object
Returns the value of attribute fallback.
37 38 39 |
# File 'lib/injectedlogger/logger.rb', line 37 def fallback @fallback end |
#level_info ⇒ Object
Returns the value of attribute level_info.
37 38 39 |
# File 'lib/injectedlogger/logger.rb', line 37 def level_info @level_info end |
#levels ⇒ Object
Returns the value of attribute levels.
37 38 39 |
# File 'lib/injectedlogger/logger.rb', line 37 def levels @levels end |
#prefix ⇒ Object
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
40 41 42 |
# File 'lib/injectedlogger/logger.rb', line 40 def injected? not logger.nil? end |
#respond_to_missing?(method, priv = false) ⇒ 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 |