Class: Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/aspera/log.rb

Overview

Extend Ruby logger with trace levels

Defined Under Namespace

Modules: Severity

Constant Summary collapse

TRACE_MAX =

Two additionnal trace levels

2
SEVERITY_LABEL =

Quick access to label

Severity.constants.each_with_object({}){ |name, hash| hash[Severity.const_get(name)] = name}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.make_methods(str_level) ⇒ Object

Define methods for a given log level



32
33
34
35
36
37
38
# File 'lib/aspera/log.rb', line 32

def make_methods(str_level)
  int_level = ::Logger.const_get(str_level.upcase)
  method_base = str_level.downcase
  define_method(method_base, ->(message = nil, &block){add(int_level, message, &block)})
  define_method("#{method_base}?", ->{level <= int_level})
  define_method("#{method_base}!", ->{self.level = int_level})
end

Instance Method Details

#format_severity(severity) ⇒ Object



26
27
28
# File 'lib/aspera/log.rb', line 26

def format_severity(severity)
  SEVERITY_LABEL[severity] || 'ANY'
end