class TileUp::Logger

Base logger class, subclass this, do not use directly.

Public Class Methods

build(type, level, options = {}) click to toggle source
# File lib/tileup/logger.rb, line 9
def self.build type, level, options = {}
  case type
  when 'none' then TileUp::Loggers::None.new(level, options)
  when ::Logger then TileUp::Logger.new(level, options.merge(logger: type))
  else TileUp::Loggers::Console.new(level, options)
  end
end
new(level, options = {}) click to toggle source

create logger set to given level where level is a symbol (:debug, :info, :warn, :error, :fatal) options may specifiy verbose, which will log more info messages

# File lib/tileup/logger.rb, line 31
def initialize(level, options = {})
  @severity = level
  @logger = options[:logger] if options[:logger]
  default_options = { verbose: false }
  @options = OpenStruct.new(default_options.merge(options))
end
sym_to_severity(sym) click to toggle source
# File lib/tileup/logger.rb, line 17
def self.sym_to_severity(sym)
  severities =  {
    :debug   => ::Logger::DEBUG,
    :info    => ::Logger::INFO,
    :warn    => ::Logger::WARN,
    :error   => ::Logger::ERROR,
    :fatal   => ::Logger::FATAL
  }
  severity = severities[sym] || ::Logger::UNKNOWN
end

Public Instance Methods

error(message) click to toggle source

log an error message

# File lib/tileup/logger.rb, line 47
def error(message)
  # note, we always log error messages
  add(:error, message)
end
info(message) click to toggle source

log a regular message

# File lib/tileup/logger.rb, line 53
def info(message)
  add(:info, message)
end
level() click to toggle source
# File lib/tileup/logger.rb, line 38
def level
  @level
end
level=(severity) click to toggle source
# File lib/tileup/logger.rb, line 42
def level=(severity)
  logger.level = Logger.sym_to_severity(severity)
end
verbose(message) click to toggle source

log a verbose message

# File lib/tileup/logger.rb, line 62
def verbose(message)
  add(:info, message) if verbose?
end
warn(message) click to toggle source
# File lib/tileup/logger.rb, line 57
def warn(message)
  add(:warn, message)
end

Private Instance Methods

add(severity, message) click to toggle source

add message to log

# File lib/tileup/logger.rb, line 69
def add(severity, message)
  severity = Logger.sym_to_severity(severity)
  logger.add(severity, message)
end
create_logger() click to toggle source

subclasses should overwrite this method, creating what ever logger they want to

# File lib/tileup/logger.rb, line 88
def create_logger
  raise "You should create your own `create_logger` method"
end
logger() click to toggle source

create or return a logger

# File lib/tileup/logger.rb, line 80
def logger
  @logger ||= create_logger
end
verbose?() click to toggle source

is logger in verbose mode?

# File lib/tileup/logger.rb, line 75
def verbose?
  @options.verbose
end