Module: Opener::Core::Syslog

Defined in:
lib/opener/core/syslog.rb

Overview

Wrapper around ‘Syslog` that makes it easier to disable loggers and to log custom key/value pairs in message.

Class Method Summary collapse

Class Method Details

.add(type, message, meta = {}) ⇒ Object

Adds a new log message.

Examples:

add(:info, 'Testing Syslog', :user_id => 19)

Parameters:

  • type (Symbol)

    The type of log message to add, corresponds to the logger method that will be called.

  • message (String)

    The message to log.

  • meta (Hash) (defaults to: {})

    Extra meta data to log.



50
51
52
53
54
55
56
# File 'lib/opener/core/syslog.rb', line 50

def self.add(type, message, meta = {})
  return unless enabled?

  pairs = make_pairs(meta)

  ::Syslog.send(type, "#{pairs} #{message}".strip)
end

.enabled?TrueClass|FalseClass

Returns ‘true` if Syslog should be enabled.

Returns:

  • (TrueClass|FalseClass)


13
14
15
# File 'lib/opener/core/syslog.rb', line 13

def self.enabled?
  return !!ENV['ENABLE_SYSLOG']
end

.make_pairs(meta) ⇒ String

Parameters:

  • meta (Hash)

Returns:

  • (String)


62
63
64
# File 'lib/opener/core/syslog.rb', line 62

def self.make_pairs(meta)
  return meta.map { |(key, value)| "#{key}=#{value.inspect}" }.join(' ')
end

.open(name, facility = nil) ⇒ Object

Configures Syslog.

Parameters:

  • name (String)

    The name of the program.

  • facility (Fixnum) (defaults to: nil)

See Also:

  • [Syslog[Syslog.open]


24
25
26
# File 'lib/opener/core/syslog.rb', line 24

def self.open(name, facility = nil)
  ::Syslog.open(name, facility) if enabled?
end