Class: Philiprehberger::LogFilter::Wrapper
- Inherits:
-
Object
- Object
- Philiprehberger::LogFilter::Wrapper
- Defined in:
- lib/philiprehberger/log_filter/wrapper.rb
Overview
Wraps a Ruby Logger (or any object responding to the standard log level methods) and applies a Filter to every message before forwarding.
Constant Summary collapse
- LOG_LEVELS =
%i[debug info warn error fatal].freeze
Instance Method Summary collapse
-
#close ⇒ void
Close the underlying logger.
-
#initialize(logger, filter) ⇒ Wrapper
constructor
A new instance of Wrapper.
-
#level ⇒ Integer
The current log level.
- #level=(new_level) ⇒ void
-
#method_missing(method_name) ⇒ Object
Delegate unknown methods to the underlying logger.
- #respond_to_missing?(method_name, include_private = false) ⇒ Boolean
Constructor Details
#initialize(logger, filter) ⇒ Wrapper
Returns a new instance of Wrapper.
13 14 15 16 |
# File 'lib/philiprehberger/log_filter/wrapper.rb', line 13 def initialize(logger, filter) @logger = logger @filter = filter end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name) ⇒ Object
Delegate unknown methods to the underlying logger.
52 53 54 55 56 57 58 |
# File 'lib/philiprehberger/log_filter/wrapper.rb', line 52 def method_missing(method_name, ...) if @logger.respond_to?(method_name) @logger.public_send(method_name, ...) else super end end |
Instance Method Details
#close ⇒ void
This method returns an undefined value.
Close the underlying logger.
47 48 49 |
# File 'lib/philiprehberger/log_filter/wrapper.rb', line 47 def close @logger.close end |
#level ⇒ Integer
Returns the current log level.
34 35 36 |
# File 'lib/philiprehberger/log_filter/wrapper.rb', line 34 def level @logger.level end |
#level=(new_level) ⇒ void
This method returns an undefined value.
40 41 42 |
# File 'lib/philiprehberger/log_filter/wrapper.rb', line 40 def level=(new_level) @logger.level = new_level end |
#respond_to_missing?(method_name, include_private = false) ⇒ Boolean
61 62 63 |
# File 'lib/philiprehberger/log_filter/wrapper.rb', line 61 def respond_to_missing?(method_name, include_private = false) @logger.respond_to?(method_name, include_private) || super end |