module GHTorrent::Logging

Public Instance Methods

debug(msg) click to toggle source
# File lib/ghtorrent/logging.rb, line 22
def debug(msg)
  log(:debug, msg)
end
error(msg) click to toggle source
# File lib/ghtorrent/logging.rb, line 10
def error(msg)
  log(:warn, msg)
end
info(msg) click to toggle source
# File lib/ghtorrent/logging.rb, line 18
def info(msg)
  log(:info, msg)
end
loggerr() click to toggle source

Default logger

# File lib/ghtorrent/logging.rb, line 27
def loggerr
  @logger ||= proc do
    @logger_uniq ||= config(:logging_uniq)

    logger = if config(:logging_file).casecmp('stdout')
               Logger.new(STDOUT)
             elsif config(:logging_file).casecmp('stderr')
               Logger.new(STDERR)
             else
               Logger.new(config(:logging_file))
             end

    logger.level =
        case config(:logging_level).downcase
          when 'debug' then
            Logger::DEBUG
          when 'info' then
            Logger::INFO
          when 'warn' then
            Logger::WARN
          when 'error' then
            Logger::ERROR
          else
            Logger::INFO
        end

    logger.formatter = proc do |severity, time, progname, msg|
      if progname.nil? or progname.empty?
        progname = @logger_uniq
      end
      "#{severity}, #{time.iso8601}, #{progname} -- #{msg}\n"
    end
    logger
  end.call

  @logger
end
warn(msg) click to toggle source
# File lib/ghtorrent/logging.rb, line 14
def warn(msg)
  log(:warn, msg)
end

Private Instance Methods

log(level, msg) click to toggle source

Log a message at the given level.

# File lib/ghtorrent/logging.rb, line 81
def log(level, msg)

  case level
    when :fatal then
      loggerr.fatal (retrieve_caller + msg)
    when :error then
      loggerr.error (retrieve_caller + msg)
    when :warn then
      loggerr.warn  (retrieve_caller + msg)
    when :info then
      loggerr.info  (retrieve_caller + msg)
    when :debug then
      loggerr.debug (retrieve_caller + msg)
    else
      loggerr.debug (retrieve_caller + msg)
  end
end
retrieve_caller() click to toggle source
# File lib/ghtorrent/logging.rb, line 67
def retrieve_caller
  @logprefixes ||= Hash.new

  c = caller[2]
  unless @logprefixes.key? c
    file_path = c.split(/:/)[0]
    @logprefixes[c] = File.basename(file_path) + ': '
  end

  @logprefixes[c]

end