Module: Plover::Log

Included in:
Builder, Builder
Defined in:
lib/plover.rb

Instance Method Summary collapse

Instance Method Details

#log(severity, msg) ⇒ Object



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

def log(severity, msg)
  logger.add(log_severity(severity), msg) unless log_config[:level] == :none
end

#log_configObject



68
69
70
# File 'lib/plover.rb', line 68

def log_config
  is_a?(Class) ? configuration[:options][:log] : @configuration[:options][:log]
end

#log_level(severity) ⇒ Object



40
41
42
43
44
# File 'lib/plover.rb', line 40

def log_level(severity)
  log_config[:level] = severity
  @logger = nil
  logger.level = log_severity(log_config[:level])
end

#log_severity(severity = nil) ⇒ Object



46
47
48
49
50
# File 'lib/plover.rb', line 46

def log_severity(severity = nil)
  Logger::Severity.coerce(severity)
rescue
  Logger::Severity.coerce(:unknown)
end

#loggerObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/plover.rb', line 52

def logger
  sink = case log_config[:sink]
  when String
    f = File.open(log_config[:sink], "a")
    f.sync = true
    f
  when ->(s) { s.respond_to?(:write) }
    log_config[:sink]
  else $stdout
  end

  @logger ||= Logger.new(sink,
    progname: "<Plover/#{is_a?(Class) ? name : self.class.name}>",
    level: log_severity(log_config[:level]))
end