Class: Soaspec::SpecLogger
- Inherits:
-
Object
- Object
- Soaspec::SpecLogger
- Defined in:
- lib/soaspec/spec_logger.rb
Overview
Handles logs of API requests and responses
Class Attribute Summary collapse
-
.output_to_file ⇒ Object
Readers for log parameters.
-
.output_to_terminal ⇒ Object
Readers for log parameters.
-
.terminal_color ⇒ Object
Color shown when displaying in terminal.
-
.time_test_run ⇒ Object
readonly
Readers for log parameters.
-
.traffic_folder ⇒ Object
Folder to put API traffic logs.
Class Method Summary collapse
-
.create ⇒ Logger
Create new log file if necessary and setup logging level.
-
.info(message) ⇒ Object
Log a message using Soaspec logger Logger (and it’s file) will be created if it’s not already set.
-
.log_api_traffic=(set) ⇒ Object
Whether to log all API traffic.
-
.log_api_traffic? ⇒ Boolean
Whether to log all API traffic.
-
.reset_log ⇒ Object
Unset Logger object.
-
.traffic_file ⇒ String
Traffic file to create logs at.
-
.traffic_file=(file) ⇒ Object
Set file to log traffic to.
Class Attribute Details
.output_to_file ⇒ Object
Readers for log parameters
36 37 38 |
# File 'lib/soaspec/spec_logger.rb', line 36 def output_to_file @output_to_file end |
.output_to_terminal ⇒ Object
Readers for log parameters
36 37 38 |
# File 'lib/soaspec/spec_logger.rb', line 36 def output_to_terminal @output_to_terminal end |
.terminal_color ⇒ Object
Color shown when displaying in terminal
34 35 36 |
# File 'lib/soaspec/spec_logger.rb', line 34 def terminal_color @terminal_color end |
.time_test_run ⇒ Object (readonly)
Readers for log parameters
36 37 38 |
# File 'lib/soaspec/spec_logger.rb', line 36 def time_test_run @time_test_run end |
.traffic_folder ⇒ Object
Folder to put API traffic logs
32 33 34 |
# File 'lib/soaspec/spec_logger.rb', line 32 def traffic_folder @traffic_folder end |
Class Method Details
.create ⇒ Logger
Create new log file if necessary and setup logging level
83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/soaspec/spec_logger.rb', line 83 def create create_log_file @logger = ApiLogger.new(traffic_file) # Where request and responses of APIs are stored @logger.formatter = proc do |severity, datetime, _progname, msg| = "SpecLog, [#{datetime.strftime('%Y-%m-%d_%H:%M:%S')}] #{severity} -- : #{msg}\n" print .colorize(terminal_color) if @output_to_terminal if @output_to_file end RestClient.log = @logger @logger end |
.info(message) ⇒ Object
Log a message using Soaspec logger Logger (and it’s file) will be created if it’s not already set
98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/soaspec/spec_logger.rb', line 98 def info() return unless log_api_traffic? create unless @logger if .respond_to? :each .each do || @logger.info() end else @logger.info() end end |
.log_api_traffic=(set) ⇒ Object
Whether to log all API traffic
59 60 61 62 |
# File 'lib/soaspec/spec_logger.rb', line 59 def log_api_traffic=(set) @log_api_traffic = set reset_log end |
.log_api_traffic? ⇒ Boolean
Returns Whether to log all API traffic.
65 66 67 |
# File 'lib/soaspec/spec_logger.rb', line 65 def log_api_traffic? @log_api_traffic.nil? ? true : @log_api_traffic end |
.reset_log ⇒ Object
Unset Logger object. It will be recreated on next time ‘info’ is called
53 54 55 56 |
# File 'lib/soaspec/spec_logger.rb', line 53 def reset_log @logger = nil RestClient.log = nil end |
.traffic_file ⇒ String
Returns Traffic file to create logs at.
45 46 47 48 49 50 |
# File 'lib/soaspec/spec_logger.rb', line 45 def traffic_file return File.join(traffic_folder, @traffic_file) if @traffic_file filename = "traffic_#{time_test_run}.log" File.join(traffic_folder, filename) end |
.traffic_file=(file) ⇒ Object
Set file to log traffic to
39 40 41 42 |
# File 'lib/soaspec/spec_logger.rb', line 39 def traffic_file=(file) @traffic_file = file reset_log end |