Module: Shipeasy::Logging

Defined in:
lib/shipeasy/logging.rb

Constant Summary collapse

LEVELS =

All accepted levels, in increasing verbosity.

%i[silent error warn info debug].freeze
RANK =
{ silent: 0, error: 1, warn: 2, info: 3, debug: 4 }.freeze
DEFAULT_LEVEL =
:warn

Class Method Summary collapse

Class Method Details

.debug(msg) ⇒ Object



61
62
63
# File 'lib/shipeasy/logging.rb', line 61

def debug(msg)
  emit(:debug, msg)
end

.error(msg) ⇒ Object



49
50
51
# File 'lib/shipeasy/logging.rb', line 49

def error(msg)
  emit(:error, msg)
end

.info(msg) ⇒ Object



57
58
59
# File 'lib/shipeasy/logging.rb', line 57

def info(msg)
  emit(:info, msg)
end

.levelObject

The current SDK-wide log level (defaults to :warn until set).



34
35
36
# File 'lib/shipeasy/logging.rb', line 34

def level
  @level || DEFAULT_LEVEL
end

.normalize(level) ⇒ Object

Normalise any input to a known level symbol; unknown → DEFAULT_LEVEL.



39
40
41
42
43
44
45
46
47
# File 'lib/shipeasy/logging.rb', line 39

def normalize(level)
  sym =
    case level
    when Symbol then level.to_s.downcase.to_sym
    when String then level.downcase.to_sym
    else nil
    end
  RANK.key?(sym) ? sym : DEFAULT_LEVEL
end

.set_level(level) ⇒ Object

Set the SDK-wide log level. Accepts a symbol or string (case-insensitive); an unrecognised value falls back to the default :warn so a bad config value can never silence a genuine error unexpectedly.



29
30
31
# File 'lib/shipeasy/logging.rb', line 29

def set_level(level)
  @level = normalize(level)
end

.warn(msg) ⇒ Object



53
54
55
# File 'lib/shipeasy/logging.rb', line 53

def warn(msg)
  emit(:warn, msg)
end