module Opener::Core::Syslog

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

Public Class Methods

add(type, message, meta = {}) click to toggle source

Adds a new log message.

@example

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

@param [Symbol] type The type of log message to add, corresponds to the

logger method that will be called.

@param [String] message The message to log. @param [Hash] meta Extra meta data to log.

# 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?() click to toggle source

Returns `true` if Syslog should be enabled.

@return [TrueClass|FalseClass]

# File lib/opener/core/syslog.rb, line 13
def self.enabled?
  return !!ENV['ENABLE_SYSLOG']
end
make_pairs(meta) click to toggle source

@param [Hash] meta @return [String]

# 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) click to toggle source

Configures Syslog.

@see [Syslog.open] @param [String] name The name of the program. @param [Fixnum] facility

# File lib/opener/core/syslog.rb, line 24
def self.open(name, facility = nil)
  ::Syslog.open(name, facility) if enabled?
end