class Rack::LogProxy

Public Class Methods

new(logger) click to toggle source
# File lib/rack/simple_logger/log_proxy.rb, line 5
def initialize(logger)
  case logger.class.to_s
  when "Logger"
    @logger = logger
    @log_type = :logger
  when "String", "IO"
    @logger = ::Logger.new(logger)
    @log_type = :logger
  when "Mongo::Collection"
    @logger = logger
    @log_type = :mongo
  else
    @logger = logger
    @log_type = :other
  end

  logger_formatter if @log_type == :logger
end

Public Instance Methods

write(log_hash) click to toggle source
# File lib/rack/simple_logger/log_proxy.rb, line 24
def write(log_hash)
  send("write_#{@log_type}", log_hash)
end
write_logger(log_hash) click to toggle source
# File lib/rack/simple_logger/log_proxy.rb, line 28
def write_logger(log_hash)
  @logger.info log_hash.map{|k,v| [k, v].join(":")}.join("\t")
end
write_mongo(log_hash) click to toggle source
# File lib/rack/simple_logger/log_proxy.rb, line 32
def write_mongo(log_hash)
  @logger.insert log_hash
end
write_other(log_hash) click to toggle source
# File lib/rack/simple_logger/log_proxy.rb, line 36
def write_other(log_hash)
  @logger.write log_hash
end

Private Instance Methods

logger_formatter() click to toggle source
# File lib/rack/simple_logger/log_proxy.rb, line 41
def logger_formatter
  @logger.formatter = Proc.new do |severity, datetime, progname, msg|
    "#{msg}\n"
  end
end