Class: Lines::SyslogOutputter

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

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,
}

Instance Method Summary collapse

Constructor Details

#initialize(syslog = Syslog) ⇒ SyslogOutputter

Returns a new instance of SyslogOutputter.



165
166
167
# File 'lib/lines.rb', line 165

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

Instance Method Details

#output(dumper, obj) ⇒ Object



169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'lib/lines.rb', line 169

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)
  str = dumper.dump(obj)

  @syslog.log(level, "%s", str)
end