Class: LogStash::Filters::Logfmt

Inherits:
Base
  • Object
show all
Defined in:
lib/logstash/filters/logfmt.rb

Overview

Add any asciidoc formatted documentation here

Instance Method Summary collapse

Instance Method Details

#filter(event) ⇒ Object



30
31
32
33
# File 'lib/logstash/filters/logfmt.rb', line 30

def filter(event)
  return if resolve(event).nil?
  filter_matched(event)
end

#registerObject



26
27
28
# File 'lib/logstash/filters/logfmt.rb', line 26

def register
  @logger.info 'Logfmt filter registered'
end

#resolve(event) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/logstash/filters/logfmt.rb', line 35

def resolve(event)
  data = event.get(@source)
  params = Logfmt.parse(data)

  # log line should at least have level
  return if !params['level'].is_a?(String) || params['level'].empty?

  if params['stacktrace']
    if params['stacktrace'].start_with?('[')
      params['stacktrace'] = params['stacktrace'][1..-2].split('][')
    else
      params['stacktrace'] = params['stacktrace'].split(',')
    end
  end
  event.set(@target, process_hash(params))
  event.set(@source, nil) if @remove_source
  return true
rescue => e
  log_exception(e, data)
  nil
end