class LogStashLogger::Device::Redis
Constants
- DEFAULT_LIST
Attributes
list[RW]
Public Class Methods
new(opts)
click to toggle source
Calls superclass method
LogStashLogger::Device::Connectable::new
# File lib/logstash-logger/device/redis.rb, line 10 def initialize(opts) super @list = opts.delete(:list) || DEFAULT_LIST @buffer_group = @list normalize_path(opts) @redis_options = opts end
Public Instance Methods
close!()
click to toggle source
# File lib/logstash-logger/device/redis.rb, line 53 def close! @io && @io.quit end
connect()
click to toggle source
# File lib/logstash-logger/device/redis.rb, line 20 def connect @io = ::Redis.new(@redis_options) end
reconnect()
click to toggle source
# File lib/logstash-logger/device/redis.rb, line 24 def reconnect @io.client.reconnect rescue => e log_error(e) end
with_connection() { || ... }
click to toggle source
# File lib/logstash-logger/device/redis.rb, line 30 def with_connection connect unless connected? yield rescue ::Redis::InheritedError reconnect retry rescue => e log_error(e) close(flush: false) raise end
write_batch(messages, list = nil)
click to toggle source
# File lib/logstash-logger/device/redis.rb, line 42 def write_batch(messages, list = nil) list ||= @list with_connection do @io.rpush(list, messages) end end
write_one(message, list = nil)
click to toggle source
# File lib/logstash-logger/device/redis.rb, line 49 def write_one(message, list = nil) write_batch(message, list) end
Private Instance Methods
normalize_path(opts)
click to toggle source
# File lib/logstash-logger/device/redis.rb, line 59 def normalize_path(opts) path = opts.fetch(:path, nil) if path opts[:db] = path.gsub("/", "").to_i unless path.empty? opts.delete(:path) end end