Module: GroceryDelivery::Log

Defined in:
lib/grocery_delivery/logging.rb

Overview

Logging wrapper rubocop:disable ClassVars

Constant Summary collapse

@@init =
false
@@level =
Logger::WARN

Class Method Summary collapse

Class Method Details

.debug(msg) ⇒ Object



49
50
51
52
53
54
# File 'lib/grocery_delivery/logging.rb', line 49

def self.debug(msg)
  if @@level == Logger::DEBUG
    msg.prepend('DEBUG: ')
    logit(Syslog::LOG_DEBUG, msg)
  end
end

.error(msg) ⇒ Object



68
69
70
71
# File 'lib/grocery_delivery/logging.rb', line 68

def self.error(msg)
  msg.prepend('ERROR: ')
  logit(Syslog::LOG_ERR, msg)
end

.info(msg) ⇒ Object



56
57
58
59
60
61
# File 'lib/grocery_delivery/logging.rb', line 56

def self.info(msg)
  if @@level == Logger::INFO
    msg.prepend('INFO: ')
    logit(Syslog::LOG_INFO, msg)
  end
end

.initObject



27
28
29
30
# File 'lib/grocery_delivery/logging.rb', line 27

def self.init
  Syslog.open(File.basename($PROGRAM_NAME, '.rb'))
  @@init = true
end

.logit(level, msg) ⇒ Object



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

def self.logit(level, msg)
  init unless @@init
  # You can't do `Syslog.log(level, msg)` because if there is a
  # `%` in `msg` then ruby will interpret it as a printf string and
  # expect more arguments to log().
  Syslog.log(level, '%s', msg)
  puts msg if $stdout.tty? || @@stdout
end

.stdout=(val) ⇒ Object



36
37
38
# File 'lib/grocery_delivery/logging.rb', line 36

def self.stdout=(val)
  @@stdout = val
end

.verbosity=(val) ⇒ Object



32
33
34
# File 'lib/grocery_delivery/logging.rb', line 32

def self.verbosity=(val)
  @@level = val
end

.warn(msg) ⇒ Object



63
64
65
66
# File 'lib/grocery_delivery/logging.rb', line 63

def self.warn(msg)
  msg.prepend('WARN: ')
  logit(Syslog::LOG_WARNING, msg)
end