Sha256: 2de664d96aa6d6e557d7873dcc1ed7ab9955e95f5316d63ab1ccbdd535eb1493

Contents?: true

Size: 1.35 KB

Versions: 1

Compression:

Stored size: 1.35 KB

Contents

# encoding: utf-8
class LogStash::Outputs::Lumberjack < LogStash::Outputs::Base

  config_name "lumberjack"
  milestone 1

  # list of addresses lumberjack can send to
  config :hosts, :validate => :array, :required => true

  # the port to connect to
  config :port, :validate => :number, :required => true

  # ssl certificate to use
  config :ssl_certificate, :validate => :path, :required => true

  # window size
  config :window_size, :validate => :number, :default => 5000

  public
  def register
    require 'lumberjack/client'
    connect
  end # def register

  public
  def receive(event)
    return unless output?(event)
    begin
      @client.write(event.to_hash)
    rescue Exception => e
      @logger.error("Client write error", :e => e, :backtrace => e.backtrace)
      connect
      retry
    end
  end # def receive

  private 
  def connect
    @logger.info("Connecting to lumberjack server.", :addresses => @hosts, :port => @port, 
        :ssl_certificate => @ssl_certificate, :window_size => @window_size)
    begin
      @client = Lumberjack::Client.new(:addresses => @hosts, :port => @port, 
        :ssl_certificate => @ssl_certificate, :window_size => @window_size)
    rescue Exception => e
      @logger.error("All hosts unavailable, sleeping", :hosts => @hosts, :e => e, 
        :backtrace => e.backtrace)
      sleep(10)
      retry
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
logstash-lib-1.3.2 lib/logstash/outputs/lumberjack.rb