Class: BufferedLogger::LogDeviceProxy

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

Constant Summary collapse

THREAD_LOCAL_VAR_NAME =
:"BufferedLogger::LogDeviceProxy::string_io"

Instance Method Summary collapse

Constructor Details

#initialize(logdev) ⇒ LogDeviceProxy

Returns a new instance of LogDeviceProxy.



7
8
9
10
# File 'lib/buffered_logger/log_device_proxy.rb', line 7

def initialize(logdev)
  @logdev = logdev
  destroy_thread_local
end

Instance Method Details

#closeObject



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

def close
  @logdev.close
end

#current_logObject



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

def current_log
  string_io.string.dup
end

#endObject



16
17
18
19
# File 'lib/buffered_logger/log_device_proxy.rb', line 16

def end
  @logdev.write(string_io.string)
  destroy_thread_local
end

#flushObject



21
22
23
24
# File 'lib/buffered_logger/log_device_proxy.rb', line 21

def flush
  @logdev.write(string_io.string)
  string_io.string.clear
end

#startObject



26
27
28
# File 'lib/buffered_logger/log_device_proxy.rb', line 26

def start
  self.string_io = StringIO.new
end

#started?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/buffered_logger/log_device_proxy.rb', line 30

def started?
  !!string_io
end

#write(message) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/buffered_logger/log_device_proxy.rb', line 34

def write(message)
  if started?
    string_io.write(message)
  else
    @logdev.write(message)
  end
end