Class: SemanticLogger::Test::CaptureLogEvents
- Inherits:
 - 
      Subscriber
      
        
- Object
 - Base
 - Subscriber
 - SemanticLogger::Test::CaptureLogEvents
 
 
- Defined in:
 - lib/semantic_logger/test/capture_log_events.rb
 
Overview
Logging class to captures all logging events in memory.
Example:
class UserTest < ActiveSupport::TestCase
  describe User do
    let(:logger) { SemanticLogger::Test::CaptureLogEvents.new }
    let(:user) { User.new }
    it "logs message" do
      user.stub(:logger, logger) do
        user.enable!
      end
      assert log = logger.events.first
      assert_equal "Hello World", log.
      assert_equal :info, log.level
    end
  end
end
  Instance Attribute Summary collapse
- 
  
    
      #events  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute events.
 
Attributes inherited from Subscriber
#application, #environment, #formatter, #host, #logger, #metrics
Attributes inherited from Base
Instance Method Summary collapse
- 
  
    
      #batch(_logs)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Supports batching of log events.
 - #clear ⇒ Object
 - 
  
    
      #initialize(level: :trace, metrics: true)  ⇒ CaptureLogEvents 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
By default collect all log levels, and collect metric only log events.
 - 
  
    
      #level_index  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Support silencing of log messages.
 - #log(log) ⇒ Object
 - #to_h ⇒ Object
 
Methods inherited from Subscriber
#close, #console_output?, #default_formatter, #flush, #level, #should_log?
Methods inherited from Base
#backtrace, #fast_tag, #level, #level=, #measure, #named_tags, #pop_tags, #push_tags, #should_log?, #silence, #tagged, #tags
Constructor Details
#initialize(level: :trace, metrics: true) ⇒ CaptureLogEvents
By default collect all log levels, and collect metric only log events.
      26 27 28 29  | 
    
      # File 'lib/semantic_logger/test/capture_log_events.rb', line 26 def initialize(level: :trace, metrics: true) super(level: level, metrics: true) @events = [] end  | 
  
Instance Attribute Details
#events ⇒ Object
Returns the value of attribute events.
      23 24 25  | 
    
      # File 'lib/semantic_logger/test/capture_log_events.rb', line 23 def events @events end  | 
  
Instance Method Details
#batch(_logs) ⇒ Object
Supports batching of log events
      37 38 39  | 
    
      # File 'lib/semantic_logger/test/capture_log_events.rb', line 37 def batch(_logs) @events += log end  | 
  
#clear ⇒ Object
      41 42 43  | 
    
      # File 'lib/semantic_logger/test/capture_log_events.rb', line 41 def clear @events.clear end  | 
  
#level_index ⇒ Object
Support silencing of log messages
      46 47 48  | 
    
      # File 'lib/semantic_logger/test/capture_log_events.rb', line 46 def level_index @level_index || SemanticLogger.default_level_index end  | 
  
#log(log) ⇒ Object
      31 32 33 34  | 
    
      # File 'lib/semantic_logger/test/capture_log_events.rb', line 31 def log(log) Logger.call_subscribers(log) @events << log end  | 
  
#to_h ⇒ Object
      50 51 52  | 
    
      # File 'lib/semantic_logger/test/capture_log_events.rb', line 50 def to_h events.map(&:to_h) end  |