Sha256: 9996a7b9283bf2953e8020bcaa6e9bbe36a43b67be05644abfdf2e334f50b18b

Contents?: true

Size: 628 Bytes

Versions: 4

Compression:

Stored size: 628 Bytes

Contents

require 'socket'
require_relative 'logstash_adapter/formatter'

class Logasm
  module Adapters
    class LogstashAdapter
      attr_reader :logger

      def initialize(level, service, arguments = {})
        host = arguments.fetch(:host)
        port = arguments.fetch(:port)
        device = UDPSocket.new.tap do |socket|
          socket.connect(host, port)
        end

        @logger = Logger.new(device).tap do |logger|
          logger.formatter = Formatter.new(service)
          logger.level = level
        end
      end

      def log(level, data)
        @logger.public_send level, data
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
logasm-0.2.5 lib/logasm/adapters/logstash_adapter.rb
logasm-0.2.4 lib/logasm/adapters/logstash_adapter.rb
logasm-0.2.3 lib/logasm/adapters/logstash_adapter.rb
logasm-0.2.2 lib/logasm/adapters/logstash_adapter.rb