lib/log4r/outputter/scribeoutputter.rb
# :nodoc:
# Version:: $Id$
require "log4r/outputter/outputter"
require "rubygems"
require "scribe"
module Log4r
class ScribeOutputter < Outputter
attr_reader :host, :port, :category
def initialize(_name, hash={})
super(_name, hash)
@host = (hash[:host] or hash[:host] or 'localhost')
@port = (hash[:port] or hash[:port] or '1463')
@category = (hash[:category] or hash[:category] or 'default')
@client = Scribe.new("#{@host}:#{@port}", category=@category, add_newlines=false)
end
private
def write(data)
begin
@client.log(data.strip, @category)
rescue ScribeThrift::Client::TransportException => e
Logger.log_internal(-2) {
"Caught TransportException, is the scribe server alive?"
}
rescue ThriftClient::NoServersAvailable => e
Logger.log_internal(-2) {
"No scribe servers are available!"
}
end
end
end
end