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



45
46
47
48
49
50
# File 'lib/grocery_delivery/logging.rb', line 45

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

.error(msg) ⇒ Object



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

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

.info(msg) ⇒ Object



52
53
54
55
56
57
# File 'lib/grocery_delivery/logging.rb', line 52

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



36
37
38
39
40
41
42
43
# File 'lib/grocery_delivery/logging.rb', line 36

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?
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



59
60
61
62
# File 'lib/grocery_delivery/logging.rb', line 59

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