class FlumeLogger
Constants
- HOST
- PRIORITY
- VERSION
Attributes
client[R]
Public Class Methods
new(host, port, flume_type=:ng, headers={})
click to toggle source
Calls superclass method
# File lib/flume-logger/logger.rb, line 15 def initialize(host, port, flume_type=:ng, headers={}) super(::FlumeLogger::Eventserver.new(host, port, flume_type)) @type = flume_type @headers = headers end
Public Instance Methods
add(severity, message = nil, progname = nil) { || ... }
click to toggle source
# File lib/flume-logger/logger.rb, line 21 def add(severity, message = nil, progname = nil, &block) severity ||= UNKNOWN if severity < @level return true end progname ||= @progname if message.nil? if block_given? message = yield else message = progname progname = @progname end end @logdev.write( format_message(format_severity(severity), Time.now, progname, message)) true end
format_message(severity, time, progname, message)
click to toggle source
# File lib/flume-logger/logger.rb, line 40 def format_message(severity, time, progname, message) data = message body = case data when Hash @headers = data.clone if @headers.has_key?('message') @headers.delete('message') end data['message'] || "No 'message' in Hash" when String data end if progname @headers['application'] = progname end @headers['host'] ||= HOST event = case @type when :ng $:.push File.expand_path("../flume-ng", __FILE__) require 'thrift_source_protocol' @headers['pri'] = severity evt = ThriftFlumeEvent.new() evt.headers = @headers evt.body = body evt when :og $:.push File.expand_path("../flume-og", __FILE__) require 'thrift_flume_event_server' evt = ThriftFlumeEvent.new() evt.timestamp = time.to_f.to_i * 1000 evt.priority = PRIORITY[severity] evt.body = body evt.host = @headers['host'] evt.nanos = time.usec * 1000 @headers.delete('host') evt.fields = @headers evt end event end