Class: Soaspec::SpecLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/soaspec/spec_logger.rb

Overview

Handles logs of API requests and responses

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.traffic_folderObject

Folder to put API traffic logs



13
14
15
# File 'lib/soaspec/spec_logger.rb', line 13

def traffic_folder
  @traffic_folder
end

Class Method Details

.createLogger

Create new log file if necessary and setup logging level

Returns:

  • (Logger)

    Logger class to record API traffic



23
24
25
26
27
28
29
30
31
# File 'lib/soaspec/spec_logger.rb', line 23

def create
  unless File.exist?(traffic_file)
    FileUtils.mkdir_p traffic_folder
    FileUtils.touch traffic_file
  end
  @logger = Logger.new(traffic_file) # Where request and responses of APIs are stored
  @logger.level = Logger::DEBUG
  @logger
end

.info(message) ⇒ Object

Log a message using Soaspec logger

Parameters:

  • message (String)

    The message to add to the logger



35
36
37
38
39
40
41
42
43
44
# File 'lib/soaspec/spec_logger.rb', line 35

def info(message)
  return unless Soaspec.log_api_traffic?
  if message.respond_to? :each
    message.each do |message_item|
      @logger.info(message_item)
    end
  else
    @logger.info(message)
  end
end

.traffic_fileString

Returns Traffic file to create logs at.

Returns:

  • (String)

    Traffic file to create logs at



16
17
18
19
# File 'lib/soaspec/spec_logger.rb', line 16

def traffic_file
  filename = "traffic_#{Time.now.strftime('%Y-%m-%d_%H_%M_%S')}.log"
  File.join(traffic_folder, filename)
end