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.to_h { |name| [Severity.const_get(name), name] }
Class Method Summary collapse
-
.make_methods(str_level) ⇒ nil
Define logger methods for a given log level (e.g.
debug,debug?,debug!).
Instance Method Summary collapse
-
#format_severity(severity) ⇒ String
Override.
Class Method Details
.make_methods(str_level) ⇒ nil
Define logger methods for a given log level (e.g. debug, debug?, debug!)
43 44 45 46 47 48 49 50 |
# File 'lib/aspera/log.rb', line 43 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 }) nil end |
Instance Method Details
#format_severity(severity) ⇒ String
Override
35 36 37 |
# File 'lib/aspera/log.rb', line 35 def format_severity(severity) SEVERITY_LABEL[severity] || 'ANY' end |