Class: Lines::SyslogOutputter

Inherits:
Object
  • Object
show all
Defined in:
lib/lines.rb

Overview

Handles output to syslog

Constant Summary collapse

PRI2SYSLOG =
{
  'debug'    => ::Syslog::LOG_DEBUG,
  'info'     => ::Syslog::LOG_INFO,
  'warn'     => ::Syslog::LOG_WARNING,
  'warning'  => ::Syslog::LOG_WARNING,
  'err'      => ::Syslog::LOG_ERR,
  'error'    => ::Syslog::LOG_ERR,
  'crit'     => ::Syslog::LOG_CRIT,
  'critical' => ::Syslog::LOG_CRIT,
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(syslog = ::Syslog) ⇒ SyslogOutputter

Returns a new instance of SyslogOutputter.



183
184
185
# File 'lib/lines.rb', line 183

def initialize(syslog = ::Syslog)
  @syslog = syslog
end

Instance Method Details

#output(dumper, obj) ⇒ Object



187
188
189
190
191
192
193
194
195
196
197
198
# File 'lib/lines.rb', line 187

def output(dumper, obj)
  prepare_syslog obj[:app]

  obj = obj.dup
  obj.delete(:pid) # It's going to be part of the message
  obj.delete(:at)  # Also part of the message
  obj.delete(:app) # And again

  level = extract_pri(obj)

  @syslog.log(level, "%s", dumper.dump(obj))
end