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, &block) ⇒ 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, &block)
  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 = block.call
    else
      message = progname
      progname = self.progname
    end
  end

  send({
      priority: priority,
      message:  message,
      syslog_identifier: progname,
  })
end

#closeObject



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

def close; end

#datetime_formatObject



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

def datetime_format; end

#datetime_format=(_) ⇒ Object



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

def datetime_format=(_); end

#formatterObject

journald does not require formatter or formatting



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

def formatter; end

#formatter=(_) ⇒ Object



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

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



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.min_priority = prev_priority
end