Module: Journald::Logger::Loggable

Included in:
Journald::Logger
Defined in:
lib/journald/modules/loggable.rb

Constant Summary collapse

LEVEL_MAP =

our map differs from Syslog::Logger

{
  ::Logger::UNKNOWN => LOG_ALERT,
  ::Logger::FATAL => LOG_CRIT,
  ::Logger::ERROR => LOG_ERR,
  ::Logger::WARN => LOG_WARNING,
  ::Logger::INFO => LOG_INFO,
  ::Logger::DEBUG => LOG_DEBUG,
}

Instance Method Summary collapse

Instance Method Details

#<<(value) ⇒ Object



54
55
56
# File 'lib/journald/modules/loggable.rb', line 54

def <<(value)
  debug(value)
end

#add(severity, message = nil, progname = nil) ⇒ Object Also known as: log



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/journald/modules/loggable.rb', line 16

def add(severity, message = nil, progname = nil)
  priority = severity_to_priority(severity) || LEVEL_MAP[::Logger::UNKNOWN]

  # some black magic from Logger O__o
  progname ||= self.progname
  if message.nil?
    if block_given?
      message = yield
    else
      message = progname
      progname = self.progname
    end
  end

  send_message(
    priority: priority,
    message: message,
    syslog_identifier: progname,
  )
end

#closeObject



101
# File 'lib/journald/modules/loggable.rb', line 101

def close; end

#datetime_formatObject



98
# File 'lib/journald/modules/loggable.rb', line 98

def datetime_format; end

#datetime_format=(_) ⇒ Object



99
# File 'lib/journald/modules/loggable.rb', line 99

def datetime_format=(_); end

#formatterObject

journald does not require formatter or formatting



96
# File 'lib/journald/modules/loggable.rb', line 96

def formatter; end

#formatter=(_) ⇒ Object



97
# File 'lib/journald/modules/loggable.rb', line 97

def formatter=(_); end

#levelObject Also known as: sev_threshold

journald always logs everything



61
62
63
64
# File 'lib/journald/modules/loggable.rb', line 61

def level
  priority = self.min_priority
  LEVEL_MAP.select { |_, p| p <= priority }.keys.min
end

#level=(severity) ⇒ Object Also known as: sev_threshold=



66
67
68
# File 'lib/journald/modules/loggable.rb', line 66

def level=(severity)
  self.min_priority = severity_to_priority(severity)
end

#silence(temporary_severity = nil, severity: nil, priority: nil) ⇒ Object Also known as: silence_logger



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/journald/modules/loggable.rb', line 70

def silence(temporary_severity = nil, severity: nil, priority: nil)
  prev_priority = self.min_priority

  severity ||= temporary_severity

  temp_priority = if priority
      priority
    elsif severity
      severity_to_priority(severity)
    else
      LOG_ERR
    end

  self.min_priority = temp_priority

  yield self
ensure
  self.min_priority = prev_priority
end