module TTY::Logger::Handlers::Base

Public Instance Methods

coerce_formatter(name) click to toggle source

Coerce formatter name into constant

@api private

# File lib/tty/logger/handlers/base.rb, line 23
def coerce_formatter(name)
  case name
  when String, Symbol
    const_name = if Formatters.const_defined?(name.upcase)
                   name.upcase
                 else
                   name.capitalize
                 end
    Formatters.const_get(const_name)
  when Class
    name
  else
    raise_formatter_error(name)
  end
rescue NameError
  raise_formatter_error(name)
end
format_filepath(event) click to toggle source

Format path from event metadata

@return [String]

@api private

# File lib/tty/logger/handlers/base.rb, line 66
def format_filepath(event)
  "%s:%d:in`%s`" % [event.metadata[:path], event.metadata[:lineno],
                    event.metadata[:method]]
end
log_at(tmp_level) { || ... } click to toggle source

Change current log level for the duration of the block

@param [String] tmp_level

the temporary log level

@api public

# File lib/tty/logger/handlers/base.rb, line 13
def log_at(tmp_level)
  old_level, @level = level, tmp_level
  yield
ensure
  @level = old_level
end
metadata() click to toggle source

Metadata for the log event

@return [Array]

@api private

# File lib/tty/logger/handlers/base.rb, line 53
def metadata
  if config.metadata.include?(:all)
    [:pid, :date, :time, :file]
  else
    config.metadata
  end
end
raise_formatter_error(name) click to toggle source

Raise error when unknown formatter name

@api private

# File lib/tty/logger/handlers/base.rb, line 44
def raise_formatter_error(name)
  raise Error, "Unrecognized formatter name '#{name.inspect}'"
end