class SSHKit::Fluent::IO

Attributes

fluent_client[R]
fluent_host[R]
fluent_port[R]
fluent_tag[RW]
original_output[R]

Public Class Methods

new(io) click to toggle source
# File lib/sshkit/fluent/io.rb, line 11
def initialize(io)
  @original_output = io
  self.fluent_url = 'tcp://localhost:24224'
  self.fluent_tag = ''
end

Public Instance Methods

<<(data)
Alias for: write
fluent_url=(url) click to toggle source
# File lib/sshkit/fluent/io.rb, line 22
def fluent_url=(url)
  parsed_url = URI.parse(url)
  @fluent_host = parsed_url.host
  @fluent_port = parsed_url.port || 24224

  @fluent_client = reinit_client
end
write(data) click to toggle source
# File lib/sshkit/fluent/io.rb, line 30
def write(data)
  original_output.write(data)

  fluent_client.post(fluent_tag, {"message" => data})
end
Also aliased as: <<

Private Instance Methods

reinit_client() click to toggle source

TODO prefix if needed

# File lib/sshkit/fluent/io.rb, line 40
def reinit_client
  ::Fluent::Logger::FluentLogger.open(nil, :host => fluent_host, :port => fluent_port)
end