Class: FullRequestLogger::Recorder
- Inherits:
-
Object
- Object
- FullRequestLogger::Recorder
- Defined in:
- lib/full_request_logger/recorder.rb
Instance Attribute Summary collapse
-
#redis ⇒ Object
readonly
Returns the value of attribute redis.
Class Method Summary collapse
Instance Method Summary collapse
- #attach_to(logger) ⇒ Object
-
#close ⇒ Object
no-op needed for Logger to treat this as a valid log device.
- #flush(request_id) ⇒ Object
-
#initialize ⇒ Recorder
constructor
A new instance of Recorder.
- #log ⇒ Object
- #retrieve(request_id) ⇒ Object
- #write(message) ⇒ Object
Constructor Details
#initialize ⇒ Recorder
Returns a new instance of Recorder.
12 13 14 |
# File 'lib/full_request_logger/recorder.rb', line 12 def initialize @redis = Redis.new FullRequestLogger.redis end |
Instance Attribute Details
#redis ⇒ Object (readonly)
Returns the value of attribute redis.
6 7 8 |
# File 'lib/full_request_logger/recorder.rb', line 6 def redis @redis end |
Class Method Details
.instance ⇒ Object
8 9 10 |
# File 'lib/full_request_logger/recorder.rb', line 8 def self.instance @instance ||= new end |
Instance Method Details
#attach_to(logger) ⇒ Object
16 17 18 19 20 |
# File 'lib/full_request_logger/recorder.rb', line 16 def attach_to(logger) logger.extend ActiveSupport::Logger.broadcast( ActiveSupport::Logger.new(self) ) end |
#close ⇒ Object
no-op needed for Logger to treat this as a valid log device
48 49 50 |
# File 'lib/full_request_logger/recorder.rb', line 48 def close redis.disconnect! end |
#flush(request_id) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/full_request_logger/recorder.rb', line 30 def flush(request_id) if (log_to_be_flushed = log).present? redis.setex \ request_key(request_id), FullRequestLogger.ttl, compress(log_to_be_flushed) end ensure .clear end |
#log ⇒ Object
26 27 28 |
# File 'lib/full_request_logger/recorder.rb', line 26 def log .join.strip end |
#retrieve(request_id) ⇒ Object
41 42 43 44 45 |
# File 'lib/full_request_logger/recorder.rb', line 41 def retrieve(request_id) if log = redis.get(request_key(request_id)) uncompress(log).force_encoding("utf-8") end end |
#write(message) ⇒ Object
22 23 24 |
# File 'lib/full_request_logger/recorder.rb', line 22 def write() << remove_ansi_colors() end |