Class: RailsLogstasher::Event

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/rails-logstasher/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

Instance Method Summary collapse

Constructor Details

#initialize(logger, rack = false) ⇒ Event

Returns a new instance of Event.



10
11
12
13
14
# File 'lib/rails-logstasher/event.rb', line 10

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

Instance Method Details

#add_tags_to_logger(request, tags) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/rails-logstasher/event.rb', line 24

def add_tags_to_logger(request, tags)
  tag_hash = []
  if tags
    tags.each do |tag|
      case tag
      when Symbol
        tag_hash << {tag.to_s => request.send(tag) }
      when Proc
        tag_hash << tag.call(request)
      else
        tag_hash << tag
      end
    end
  end

  @logger.push_request_tags(tag_hash)
end

#write(rack = false) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/rails-logstasher/event.rb', line 16

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