Class: BufferedLogger

Inherits:
Logger
  • Object
show all
Defined in:
lib/buffered_logger.rb,
lib/buffered_logger/rails.rb,
lib/buffered_logger/errors.rb,
lib/buffered_logger/version.rb,
lib/buffered_logger/middleware.rb,
lib/buffered_logger/log_device_proxy.rb

Defined Under Namespace

Classes: AlreadyStartedError, LogDeviceProxy, Middleware, NotStartedError, Railtie

Constant Summary collapse

VERSION =
"1.2.2"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBufferedLogger

Returns a new instance of BufferedLogger.



11
12
13
14
15
# File 'lib/buffered_logger.rb', line 11

def initialize(*)
  super
  @logdev = LogDeviceProxy.new(@logdev)
  self.sweep_frequency = 0.02
end

Instance Attribute Details

#sweep_frequencyObject

Returns the value of attribute sweep_frequency.



9
10
11
# File 'lib/buffered_logger.rb', line 9

def sweep_frequency
  @sweep_frequency
end

Instance Method Details

#current_logObject



51
52
53
# File 'lib/buffered_logger.rb', line 51

def current_log
  @logdev.current_log
end

#endObject

Raises:



17
18
19
20
21
22
# File 'lib/buffered_logger.rb', line 17

def end
  raise NotStartedError, "not started" unless started?
  @logdev.end
  sweep if rand <= sweep_frequency
  nil
end

#flushObject



24
25
26
# File 'lib/buffered_logger.rb', line 24

def flush
  @logdev.flush
end

#start(&block) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/buffered_logger.rb', line 28

def start(&block)
  raise AlreadyStartedError, "already started" if started?
  @logdev.start

  if block_given?
    begin
      yield
    ensure
      self.end
    end
  else
    true
  end
end

#started?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/buffered_logger.rb', line 43

def started?
  @logdev.started?
end

#sweepObject



47
48
49
# File 'lib/buffered_logger.rb', line 47

def sweep
  @logdev.sweep
end