Class: TmcLogger

Inherits:
Object show all
Defined in:
lib/logger/tmc_logger.rb

Overview

The TmcLogger class manages logging for TMC test scripts

Constant Summary collapse

DATETIME_FORMAT =
'%Y-%m-%dT%H:%M:%S.%6N%:z'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(log_path, log_level) ⇒ TmcLogger

Public: Initializes a TMC logger.

Returns nothing.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/logger/tmc_logger.rb', line 13

def initialize(log_path, log_level)
  @log_level = log_level || 'debug'  # needed for syntax eval
  if log_path.nil?
    @logger = Logger.new(STDERR)
    @logger = Logger.new(STDOUT)
  else
    file = File.open(log_path, File::WRONLY | File::APPEND | File::CREAT)
    file.sync = true    # flush log file buffer immediately
    STDOUT.sync = true  # flush STDOUT buffer immediately
    @logger = Logger.new(MultiIO.new(file, STDOUT))
  end
  @logger.formatter = proc do |severity, datetime, progname, msg|
    "[#{datetime.strftime(DATETIME_FORMAT)}] [#{severity}] #{msg}\n"
  end
  @logger.level = Logger.const_get(@log_level.upcase.to_sym)
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



6
7
8
# File 'lib/logger/tmc_logger.rb', line 6

def logger
  @logger
end