class LogStasher::Device::Syslog
Attributes
options[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/logstasher/device/syslog.rb, line 13 def initialize(options = {}) raw_options = default_options.merge(stringify_keys(options)) @options = parse_options(raw_options) open_syslog end
Public Instance Methods
close()
click to toggle source
# File lib/logstasher/device/syslog.rb, line 20 def close ::Syslog.close rescue nil end
closed?()
click to toggle source
# File lib/logstasher/device/syslog.rb, line 24 def closed? !::Syslog.opened? end
facility()
click to toggle source
# File lib/logstasher/device/syslog.rb, line 28 def facility options['facility'] end
flags()
click to toggle source
# File lib/logstasher/device/syslog.rb, line 32 def flags options['flags'] end
identity()
click to toggle source
# File lib/logstasher/device/syslog.rb, line 36 def identity options['identity'] end
priority()
click to toggle source
# File lib/logstasher/device/syslog.rb, line 40 def priority options['priority'] end
write(log)
click to toggle source
# File lib/logstasher/device/syslog.rb, line 44 def write(log) fail ::RuntimeError, 'Syslog has been closed.' if closed? fail ::RuntimeError, 'Syslog re-configured unexpectedly.' if syslog_config_changed? ::Syslog.log(priority, '%s', log) end
Private Instance Methods
default_options()
click to toggle source
# File lib/logstasher/device/syslog.rb, line 53 def default_options { 'identity' => 'logstasher', 'facility' => ::Syslog::LOG_LOCAL0, 'priority' => ::Syslog::LOG_INFO, 'flags' => ::Syslog::LOG_PID | ::Syslog::LOG_CONS, } end
open_syslog()
click to toggle source
# File lib/logstasher/device/syslog.rb, line 62 def open_syslog if ::Syslog.opened? ::Syslog.reopen(identity, flags, facility) else ::Syslog.open(identity, flags, facility) end end
parse_option(value)
click to toggle source
# File lib/logstasher/device/syslog.rb, line 70 def parse_option(value) case value when ::String ::Syslog.const_get(value.to_s) when ::Array value.reduce(0) { |all, current| all |= parse_option(current) } else value end end
parse_options(options)
click to toggle source
# File lib/logstasher/device/syslog.rb, line 81 def parse_options(options) options['facility'] = parse_option(options['facility']) options['priority'] = parse_option(options['priority']) options['flags'] = parse_option(options['flags']) options end
syslog_config_changed?()
click to toggle source
# File lib/logstasher/device/syslog.rb, line 88 def syslog_config_changed? ::Syslog.ident != identity || ::Syslog.options != flags || ::Syslog.facility != facility end