Class: LogStash::Codecs::Line
- Inherits:
-
Base
- Object
- Base
- LogStash::Codecs::Line
- 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
Instance Method Details
#decode(data) ⇒ Object
39 40 41 |
# File 'lib/logstash/codecs/line.rb', line 39 def decode(data) @buffer.extract(data).each { |line| yield LogStash::Event.new(MESSAGE_FIELD => @converter.convert(line)) } end |
#encode(event) ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/logstash/codecs/line.rb', line 52 def encode(event) if event.is_a? LogStash::Event and @format @on_event.call(event, event.sprintf(@format) + @delimiter) else @on_event.call(event, event.to_s + @delimiter) end end |
#flush(&block) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/logstash/codecs/line.rb', line 44 def flush(&block) remainder = @buffer.flush if !remainder.empty? block.call(LogStash::Event.new(MESSAGE_FIELD => @converter.convert(remainder))) end end |
#register ⇒ Object
31 32 33 34 35 36 |
# File 'lib/logstash/codecs/line.rb', line 31 def register require "logstash/util/buftok" @buffer = FileWatch::BufferedTokenizer.new(@delimiter) @converter = LogStash::Util::Charset.new(@charset) @converter.logger = @logger end |