Class: Journald::Logger
- Inherits:
-
Object
- Object
- Journald::Logger
- Includes:
- Exceptionable, Loggable, Sysloggable
- Defined in:
- lib/journald/classes/logger.rb,
lib/journald/modules/version.rb,
lib/journald/modules/loggable.rb,
lib/journald/modules/sysloggable.rb,
lib/journald/modules/exceptionable.rb
Defined Under Namespace
Modules: Exceptionable, Loggable, Sysloggable
Constant Summary collapse
- VERSION =
"3.0.1"
Constants included from Loggable
Instance Attribute Summary collapse
-
#min_priority ⇒ Object
Returns the value of attribute min_priority.
Instance Method Summary collapse
-
#initialize(progname = nil, min_priority = nil, **tags) ⇒ Logger
constructor
A new instance of Logger.
- #print(priority, message) ⇒ Object
- #progname ⇒ Object
- #progname=(value) ⇒ Object
-
#send_message(hash) ⇒ Object
send systemd-journal message.
-
#tag(**tags) ⇒ Object
add tags to all log messages.
-
#tag_value(key) ⇒ Object
get tag value.
-
#tag_values(*keys) ⇒ Object
get tag values return everything including nil for non-set.
-
#untag(*keys) ⇒ Object
stop adding the tag.
Methods included from Loggable
#<<, #add, #close, #datetime_format, #datetime_format=, #formatter, #formatter=, #level, #level=, #silence
Methods included from Exceptionable
Constructor Details
#initialize(progname = nil, min_priority = nil, **tags) ⇒ Logger
Returns a new instance of Logger.
7 8 9 10 11 12 |
# File 'lib/journald/classes/logger.rb', line 7 def initialize(progname = nil, min_priority = nil, **) @tags = @logger = Native self.min_priority = min_priority self.progname = progname end |
Instance Attribute Details
#min_priority ⇒ Object
Returns the value of attribute min_priority.
22 23 24 |
# File 'lib/journald/classes/logger.rb', line 22 def min_priority @min_priority end |
Instance Method Details
#print(priority, message) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/journald/classes/logger.rb', line 36 def print(priority, ) ( priority: priority, message: , ) end |
#progname ⇒ Object
14 15 16 |
# File 'lib/journald/classes/logger.rb', line 14 def progname tag_value(:syslog_identifier) end |
#progname=(value) ⇒ Object
18 19 20 |
# File 'lib/journald/classes/logger.rb', line 18 def progname=(value) tag(syslog_identifier: value) end |
#send_message(hash) ⇒ Object
send systemd-journal message
31 32 33 34 |
# File 'lib/journald/classes/logger.rb', line 31 def (hash) hash_to_send = @tags.merge(hash) real_send(hash_to_send) end |
#tag(**tags) ⇒ Object
add tags to all log messages
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/journald/classes/logger.rb', line 46 def tag(**) values = {} if block_given? # remember old values values = tag_values(*.keys) end .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) ⇒ Object
get tag value
65 66 67 |
# File 'lib/journald/classes/logger.rb', line 65 def tag_value(key) @tags[key] end |
#tag_values(*keys) ⇒ Object
get tag values return everything including nil for non-set
71 72 73 |
# File 'lib/journald/classes/logger.rb', line 71 def tag_values(*keys) keys.inject({}) { |hash, key| hash[key] = @tags[key]; hash } end |
#untag(*keys) ⇒ Object
stop adding the tag
76 77 78 79 80 |
# File 'lib/journald/classes/logger.rb', line 76 def untag(*keys) keys.each do |key| @tags.delete(key) end end |