class TransmissionRSS::Log

Encapsulates Logger as a singleton class.

Public Class Methods

new(target = $stderr, level = :debug) click to toggle source
# File lib/transmission-rss/log.rb, line 9
def initialize(target = $stderr, level = :debug)
  @target = target
  @level = level

  @logger = Logger.new(target)
  @logger.level = to_level_const(level)
  @logger.formatter = proc do |sev, time, _, msg|
    time = time.strftime('%Y-%m-%d %H:%M:%S')
    "#{time} (#{sev.downcase}) #{msg}\n"
  end
end

Public Instance Methods

level=(level) click to toggle source

Change log level (String or Symbol)

# File lib/transmission-rss/log.rb, line 32
def level=(level)
  initialize(@target, level)
end
method_missing(sym, *args) click to toggle source

If this class misses a method, call it on the encapsulated Logger class.

# File lib/transmission-rss/log.rb, line 37
def method_missing(sym, *args)
  @logger.send(sym, *args)
end
target=(target) click to toggle source

Change log target (IO, path to a file as String, or Symbol for IO constant).

# File lib/transmission-rss/log.rb, line 23
def target=(target)
  if target.is_a? Symbol
    target = Object.const_get(target.to_s.upcase)
  end

  initialize(target, @level)
end

Private Instance Methods

to_level_const(level) click to toggle source
# File lib/transmission-rss/log.rb, line 43
def to_level_const(level)
  Object.const_get('Logger::' + level.to_s.upcase)
end