class LogStash::Codecs::GzipLines

This codec will read gzip encoded content

Public Class Methods

new(params={}) click to toggle source
Calls superclass method
# File lib/logstash/codecs/gzip_lines.rb, line 25
def initialize(params={})
  super(params)
  @converter = LogStash::Util::Charset.new(@charset)
  @converter.logger = @logger
end

Public Instance Methods

decode(data) { |event("message" => convert)| ... } click to toggle source
# File lib/logstash/codecs/gzip_lines.rb, line 32
def decode(data)
  data = StringIO.new(data) if data.kind_of?(String)

  @decoder = Zlib::GzipReader.new(data)

  begin
    @decoder.each_line do |line|
      yield LogStash::Event.new("message" => @converter.convert(line))
    end
  rescue Zlib::Error, Zlib::GzipFile::Error=> e
    file = data.is_a?(String) ? data : data.class

    @logger.error("Gzip codec: We cannot uncompress the gzip file", :filename => file)
    raise e
  end
end