Class: LogStash::Codecs::Line

Inherits:
Base
  • Object
show all
Includes:
PluginMixins::EventSupport::EventFactoryAdapter
Defined in:
lib/logstash/codecs/line.rb

Overview

Line-oriented text data.

Decoding behavior: Only whole line events will be emitted.

Encoding behavior: Each event will be emitted with a trailing newline.

Constant Summary collapse

MESSAGE_FIELD =
"message".freeze

Instance Method Summary collapse

Constructor Details

#initialize(*params) ⇒ Line

Returns a new instance of Line.



35
36
37
38
39
# File 'lib/logstash/codecs/line.rb', line 35

def initialize(*params)
  super

  @original_field = ecs_select[disabled: nil, v1: '[event][original]']
end

Instance Method Details

#decode(data) ⇒ Object



50
51
52
# File 'lib/logstash/codecs/line.rb', line 50

def decode(data)
  @buffer.extract(data).each { |line| yield new_event_from_line(line) }
end

#encode(event) ⇒ Object



61
62
63
64
# File 'lib/logstash/codecs/line.rb', line 61

def encode(event)
  encoded = @format ? event.sprintf(@format) : event.to_s
  @on_event.call(event, encoded + @delimiter)
end

#flush(&block) ⇒ Object



54
55
56
57
58
59
# File 'lib/logstash/codecs/line.rb', line 54

def flush(&block)
  remainder = @buffer.flush
  if !remainder.empty?
    block.call new_event_from_line(remainder)
  end
end

#registerObject



43
44
45
46
47
48
# File 'lib/logstash/codecs/line.rb', line 43

def register
  require "logstash/util/buftok"
  @buffer = FileWatch::BufferedTokenizer.new(@delimiter)
  @converter = LogStash::Util::Charset.new(@charset)
  @converter.logger = @logger
end