class Journald::Logger
Constants
- VERSION
Attributes
min_priority[R]
Public Class Methods
new(progname = nil, min_priority = nil, **tags)
click to toggle source
# File lib/journald/classes/logger.rb, line 7 def initialize(progname = nil, min_priority = nil, **tags) @tags = tags @logger = Native self.min_priority = min_priority self.progname = progname end
Public Instance Methods
min_priority=(value)
click to toggle source
# File lib/journald/classes/logger.rb, line 24 def min_priority=(value) @min_priority = value ? value.to_i : ::Journald::LOG_DEBUG end
print(priority, message)
click to toggle source
# File lib/journald/classes/logger.rb, line 36 def print(priority, message) send( priority: priority, message: message, ) end
progname()
click to toggle source
# File lib/journald/classes/logger.rb, line 14 def progname tag_value(:syslog_identifier) end
progname=(value)
click to toggle source
# File lib/journald/classes/logger.rb, line 18 def progname=(value) tag(syslog_identifier: value) end
send(hash)
click to toggle source
send systemd-journal message
# File lib/journald/classes/logger.rb, line 31 def send(hash) hash_to_send = @tags.merge(hash) real_send(hash_to_send) end
tag(**tags) { |self| ... }
click to toggle source
add tags to all log messages
# File lib/journald/classes/logger.rb, line 46 def tag(**tags) values = {} if block_given? # remember old values values = tag_values(*tags.keys) end tags.each do |key, value| @tags[key] = value end if block_given? yield self end ensure tag(values) if values.any? # restore old values if block given end
tag_value(key)
click to toggle source
get tag value
# File lib/journald/classes/logger.rb, line 65 def tag_value(key) @tags[key] end
tag_values(*keys)
click to toggle source
get tag values return everything including nil for non-set
# File lib/journald/classes/logger.rb, line 71 def tag_values(*keys) keys.inject({}) { |hash, key| hash[key] = @tags[key]; hash } end
untag(*keys)
click to toggle source
stop adding the tag
# File lib/journald/classes/logger.rb, line 76 def untag(*keys) keys.each do |key| @tags.delete(key) end end
Protected Instance Methods
tag_trace_location(location)
click to toggle source
used internally by exception() and TraceLogger
# File lib/journald/classes/logger.rb, line 85 def tag_trace_location(location) tag code_file: location.path, code_line: location.lineno, code_func: location.label end
untag_trace_location()
click to toggle source
# File lib/journald/classes/logger.rb, line 91 def untag_trace_location untag :code_file, :code_line, :code_func end
Private Instance Methods
real_send(hash)
click to toggle source
# File lib/journald/classes/logger.rb, line 97 def real_send(hash) hash = hash.delete_if { |_, v| v.nil? } array_to_send = hash.map do |k,v| key = k.to_s.upcase value = v.to_s if key == 'PRIORITY' priority = value.to_i return 0 if priority > @min_priority # DEBUG = 7, ALERT = 1 end "#{key}=#{value}" end @logger.send(*array_to_send) end