Module: Sysloggly::Logger

Defined in:
lib/sysloggly/logger.rb

Class Method Summary collapse

Class Method Details

.new(url, opts = {}) ⇒ Logger

Return new Ruby logger instance configured for Sysloggly.

Returns:



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/sysloggly/logger.rb', line 8

def self.new(url, opts = {})
  begin
    input_uri = URI.parse(url)
  rescue URI::InvalidURIError => e
    raise InvalidInputURL, "Invalid Input URL `#{url.inspect}`"
  end

  client, formatter = nil

  case input_uri.scheme
  when "file"
    client = Sysloggly::Clients::Filelog.new(input_uri.path)
    formatter = Sysloggly::Formatters::SimpleFormatter.new(input_uri, opts)
  when "udp", "tcp"
    client = Sysloggly::Clients::Networklog.new(input_uri)
    formatter = Sysloggly::Formatters::SyslogFormatter.new(input_uri, opts)
  else
    raise Sysloggly::UnsupportedScheme.new("#{input_uri.scheme} is unsupported")
  end

  logger = ::Logger.new(client)
  logger.formatter = formatter

  logger
end