Class: Logger
- Inherits:
-
Object
- Object
- Logger
- Defined in:
- lib/aspera/log.rb
Overview
Extend Ruby logger with trace levels
Defined Under Namespace
Modules: Severity
Constant Summary collapse
- TRACE_MAX =
Two additional trace levels
2- SEVERITY_LABEL =
Hash key [Integer] Log level (e.g. 0 for DEBUG) value [Symbol] Uppercase log level label (e.g. :DEBUG)
Severity.constants.each_with_object({}){ |name, hash| hash[Severity.const_get(name)] = name}
Class Method Summary collapse
-
.make_methods(str_level) ⇒ Object
Define methods for a given log level.
Instance Method Summary collapse
-
#format_severity(severity) ⇒ String
Override.
Class Method Details
.make_methods(str_level) ⇒ Object
Define methods for a given log level
40 41 42 43 44 45 46 |
# File 'lib/aspera/log.rb', line 40 def make_methods(str_level) int_level = ::Logger.const_get(str_level.upcase) method_base = str_level.downcase define_method(method_base, ->( = nil, &block){add(int_level, , &block)}) define_method("#{method_base}?", ->{level <= int_level}) define_method("#{method_base}!", ->{self.level = int_level}) end |
Instance Method Details
#format_severity(severity) ⇒ String
Override
34 35 36 |
# File 'lib/aspera/log.rb', line 34 def format_severity(severity) SEVERITY_LABEL[severity] || 'ANY' end |