Class: Console::Adapter::Rails::Logger
- Inherits:
-
Compatible::Logger
- Object
- Compatible::Logger
- Console::Adapter::Rails::Logger
- Defined in:
- lib/console/adapter/rails/logger.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add(severity, message = nil, progname = nil, &block) ⇒ Object
-
#initialize ⇒ Logger
constructor
A new instance of Logger.
-
#silence(severity = Logger::ERROR) ⇒ Object
Silences the logger for the duration of the block.
- #silenced?(severity) ⇒ Boolean
Constructor Details
#initialize ⇒ Logger
Returns a new instance of Logger.
27 28 29 30 31 |
# File 'lib/console/adapter/rails/logger.rb', line 27 def initialize(...) super @silence_key = :"#{self.class}.silence.#{object_id}" end |
Class Method Details
.apply!(configuration: ::Rails.configuration) ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'lib/console/adapter/rails/logger.rb', line 54 def self.apply!(configuration: ::Rails.configuration) # Set the logger to a compatible logger to catch `Rails.logger` output: configuration.logger = ActiveSupport::TaggedLogging.new( Logger.new(::Rails) ) # Delete `Rails::Rack::Logger` as it also doubles up on request logs: configuration.middleware.delete ::Rails::Rack::Logger end |
Instance Method Details
#add(severity, message = nil, progname = nil, &block) ⇒ Object
48 49 50 51 52 |
# File 'lib/console/adapter/rails/logger.rb', line 48 def add(severity, = nil, progname = nil, &block) return if silenced?(severity) super(severity, , progname, &block) end |
#silence(severity = Logger::ERROR) ⇒ Object
Silences the logger for the duration of the block.
34 35 36 37 38 39 40 |
# File 'lib/console/adapter/rails/logger.rb', line 34 def silence(severity = Logger::ERROR) current = Fiber[@silence_key] Fiber[@silence_key] = severity yield(self) ensure Fiber[@silence_key] = current end |
#silenced?(severity) ⇒ Boolean
42 43 44 45 46 |
# File 'lib/console/adapter/rails/logger.rb', line 42 def silenced?(severity) if current = Fiber[@silence_key] severity < current end end |