Class: Errlog::ChainLogger
- Inherits:
-
Logger
- Object
- Logger
- Errlog::ChainLogger
- Defined in:
- lib/errlog/chain_loggger.rb
Overview
The chain logger is used to collect data for Errlog context (current context is used) and optionally pass through logs to previous logger (that’s why chain). Potential problem: you can not bound logger to some context instance so far. Leave issue at the github if you’ll need
Instance Attribute Summary collapse
-
#prev_logger ⇒ Object
readonly
Previous logger instance if any.
Instance Method Summary collapse
-
#add(severity, message = nil, progname = nil) ⇒ Object
Standard add log method, see (Logger#add).
-
#initialize(prev = nil) ⇒ ChainLogger
constructor
Create instance optionally atop of an existing logger.
-
#level ⇒ Object
Current log level.
-
#level=(l) ⇒ Object
Set log level.
Constructor Details
#initialize(prev = nil) ⇒ ChainLogger
Create instance optionally atop of an existing logger.
15 16 17 18 |
# File 'lib/errlog/chain_loggger.rb', line 15 def initialize prev=nil @prev_logger = prev super(nil) end |
Instance Attribute Details
#prev_logger ⇒ Object (readonly)
Returns previous logger instance if any.
12 13 14 |
# File 'lib/errlog/chain_loggger.rb', line 12 def prev_logger @prev_logger end |
Instance Method Details
#add(severity, message = nil, progname = nil) ⇒ Object
Standard add log method, see (Logger#add)
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/errlog/chain_loggger.rb', line 31 def add severity, = nil, progname = nil = yield if block_given? if Errlog.rails_test? Rails.logger.add(severity, , progname) else @prev_logger and @prev_logger.add(severity, , progname) end # Rails.logger.info "- #{@prev_logger}: #{progname} =" #puts message #if Errlog.rails_test? Errlog.context.add_log_record [severity, Time.now, , progname] end |
#level ⇒ Object
Returns current log level.
26 27 28 |
# File 'lib/errlog/chain_loggger.rb', line 26 def level @prev_logger ? @prev_logger.level : super end |
#level=(l) ⇒ Object
Set log level
21 22 23 |
# File 'lib/errlog/chain_loggger.rb', line 21 def level= l @prev_logger and @prev_logger.level = l end |