Class: Sysloggly::Client::Syslog

Inherits:
Object
  • Object
show all
Includes:
InstanceMethods
Defined in:
lib/sysloggly/client/syslog.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from InstanceMethods

#datetime_format, #formatter, #hashify_message, #pri, #setup_options

Constructor Details

#initialize(input_uri, opts) ⇒ Syslog

Returns a new instance of Syslog.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/sysloggly/client/syslog.rb', line 9

def initialize(input_uri, opts)
  @input_uri = input_uri
  @opts = opts

  case @input_uri.scheme
  when 'udp'
    @syslog = UDPSocket.new
    @syslog.connect(@input_uri.host, @input_uri.port)
  when 'tcp'
    @syslog = TCPSocket.new(@input_uri.host, @input_uri.port)
    @syslog.setsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE, 1)
    @syslog.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, true)
  end

  setup_options
end

Instance Attribute Details

#input_uriObject (readonly)

Returns the value of attribute input_uri.



6
7
8
# File 'lib/sysloggly/client/syslog.rb', line 6

def input_uri
  @input_uri
end

#optsObject (readonly)

Returns the value of attribute opts.



6
7
8
# File 'lib/sysloggly/client/syslog.rb', line 6

def opts
  @opts
end

#syslogObject (readonly)

Returns the value of attribute syslog.



7
8
9
# File 'lib/sysloggly/client/syslog.rb', line 7

def syslog
  @syslog
end

Instance Method Details

#closeObject

Required by Logger::LogDevice



40
41
42
# File 'lib/sysloggly/client/syslog.rb', line 40

def close
  @syslog.close
end

#write(message) ⇒ Object

Required by Logger::LogDevice



29
30
31
32
33
34
35
# File 'lib/sysloggly/client/syslog.rb', line 29

def write(message)
  begin
    @syslog.send(message, 0)
  rescue Timeout::Error => e
    STDOUT.puts "WARNING: Timeout::Error posting message: #{message}"
  end
end