class Logger::HTTP::Base
Public Class Methods
new(base_uri, path, request_source, debug: false)
click to toggle source
# File lib/logger-http/base.rb, line 2 def initialize(base_uri, path, request_source, debug: false) @base_uri = URI.parse(base_uri) @path = path @debug_logger = Logger.new('log/logger-http.log') if debug @request_source = request_source @queue = Queue.new dbg "initialized" end
Public Instance Methods
close()
click to toggle source
# File lib/logger-http/base.rb, line 54 def close stop connection && connection.finish rescue StandardError => e dbg "#{self.class} - #{e.class} - #{e.message}" end
dbg(message)
click to toggle source
# File lib/logger-http/base.rb, line 27 def dbg message @debug_logger && @debug_logger.debug(message) end
request(data)
click to toggle source
# File lib/logger-http/base.rb, line 61 def request data put = @request_source.new(@path, data) connection.request @base_uri + @path, put end
run()
click to toggle source
# File lib/logger-http/base.rb, line 31 def run dbg "running loop" loop do data = @queue.pop dbg "popped #{data}" unless data dbg "no data!" sleep 3 next end dbg "Sending message" request(data) end rescue StandardError dbg("Got exception in run loop - #{ $! }") @connection = nil raise end
start()
click to toggle source
# File lib/logger-http/base.rb, line 21 def start @thread ||= Thread.new { run } @thread = Thread.new { run } unless @thread.alive? dbg "thread is #{@thread.status}" end
write(message)
click to toggle source
# File lib/logger-http/base.rb, line 11 def write(message) dbg "queueing message" start @queue << "#{message}\n" rescue StandardError => e dbg "#{self.class} - #{e.class} - #{e.message}" close end
Private Instance Methods
connection()
click to toggle source
# File lib/logger-http/base.rb, line 67 def connection @connection ||= Net::HTTP::Persistent.new('logger') end