Class: Yarder::Event

Inherits:
Object show all
Extended by:
Forwardable
Defined in:
lib/yarder/event.rb

Overview

Basically a wrapper for a LogStash event that keeps track of if it was created from a rack middle-ware or not. This is important when it comes to deciding when to write the log

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logger, rack = false) ⇒ Event

Returns a new instance of Event.



9
10
11
12
13
14
15
16
17
18
# File 'lib/yarder/event.rb', line 9

def initialize(logger, rack = false)
  @logger = logger
  @rack = rack
  @logstash_event = LogStash::Event.new

  self['type'] = logger.log_type
  self['tags'] ||= []
  self.fields['duration'] = {}
  self.fields['env'] = logger.env
end

Class Method Details

.create(logger, tags, rack = false) ⇒ Object



28
29
30
31
# File 'lib/yarder/event.rb', line 28

def self.create(logger, tags, rack = false)
  logger.push_request_tags(tags) if tags
  new(logger, rack)
end

Instance Method Details

#fieldsObject



33
34
35
# File 'lib/yarder/event.rb', line 33

def fields
  @fields ||= (@logstash_event[@logger.log_namespace.to_s] ||= {})
end

#write(rack = false) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/yarder/event.rb', line 20

def write(rack = false)
  if @rack
    @logger.info self if rack
  else
    @logger.info self
  end
end