Class: Cosmos::RawLoggerPair

Inherits:
Object
  • Object
show all
Defined in:
lib/cosmos/io/raw_logger_pair.rb

Overview

Holds a read/write pair of raw loggers

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, log_directory, params = []) ⇒ RawLoggerPair

Returns a new instance of RawLoggerPair.

Parameters:

  • name (String)

    name to be added to log filenames

  • log_directory (String)

    The directory to store the log files

  • params (Array) (defaults to: [])

    raw log writer parameters or empty array



33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/cosmos/io/raw_logger_pair.rb', line 33

def initialize(name, log_directory, params = [])
  if params.empty?
    raw_logger_class = RawLogger
  else
    raw_logger_class = Cosmos.require_class(params[0])
  end
  if params[1]
    @read_logger = raw_logger_class.new(name, :READ, log_directory, *params[1..-1])
    @write_logger = raw_logger_class.new(name, :WRITE, log_directory, *params[1..-1])
  else
    @read_logger = raw_logger_class.new(name, :READ, log_directory)
    @write_logger = raw_logger_class.new(name, :WRITE, log_directory)
  end
end

Instance Attribute Details

#read_loggerRawLogger

Returns The read logger.

Returns:



26
27
28
# File 'lib/cosmos/io/raw_logger_pair.rb', line 26

def read_logger
  @read_logger
end

#write_loggerRawLogger

Returns The write logger.

Returns:



28
29
30
# File 'lib/cosmos/io/raw_logger_pair.rb', line 28

def write_logger
  @write_logger
end

Instance Method Details

#cloneObject

Clone the raw logger pair



68
69
70
71
72
73
74
75
# File 'lib/cosmos/io/raw_logger_pair.rb', line 68

def clone
  raw_logger_pair = super()
  raw_logger_pair.read_logger = @read_logger.clone
  raw_logger_pair.write_logger = @write_logger.clone
  raw_logger_pair.read_logger.start if @read_logger.logging_enabled
  raw_logger_pair.write_logger.start if @write_logger.logging_enabled
  raw_logger_pair
end

#name=(name) ⇒ Object

Change the raw logger name

Parameters:



50
51
52
53
# File 'lib/cosmos/io/raw_logger_pair.rb', line 50

def name=(name)
  @read_logger.name = name
  @write_logger.name = name
end

#startObject

Start raw logging



56
57
58
59
# File 'lib/cosmos/io/raw_logger_pair.rb', line 56

def start
  @read_logger.start
  @write_logger.start
end

#stopObject

Close any open raw data log files



62
63
64
65
# File 'lib/cosmos/io/raw_logger_pair.rb', line 62

def stop
  @read_logger.stop
  @write_logger.stop
end