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
-
.logger ⇒ Object
Logger used to log API requests.
-
.output_to_file ⇒ Object
Readers for log parameters.
-
.output_to_terminal ⇒ Object
Readers for log parameters.
-
.progname ⇒ String
Name of program to include in logs.
-
.terminal_color ⇒ Object
Color shown when displaying in terminal.
-
.time_format ⇒ Object
String representing date format to use for traffic.
-
.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
.logger ⇒ Object
Logger used to log API requests
46 47 48 |
# File 'lib/soaspec/spec_logger.rb', line 46 def logger @logger end |
.output_to_file ⇒ Object
Readers for log parameters
40 41 42 |
# File 'lib/soaspec/spec_logger.rb', line 40 def output_to_file @output_to_file end |
.output_to_terminal ⇒ Object
Readers for log parameters
40 41 42 |
# File 'lib/soaspec/spec_logger.rb', line 40 def output_to_terminal @output_to_terminal end |
.progname ⇒ String
Returns Name of program to include in logs.
42 43 44 |
# File 'lib/soaspec/spec_logger.rb', line 42 def progname @progname end |
.terminal_color ⇒ Object
Color shown when displaying in terminal
38 39 40 |
# File 'lib/soaspec/spec_logger.rb', line 38 def terminal_color @terminal_color end |
.time_format ⇒ Object
String representing date format to use for traffic
49 50 51 |
# File 'lib/soaspec/spec_logger.rb', line 49 def time_format @time_format || '%H:%M:%S' end |
.time_test_run ⇒ Object (readonly)
Readers for log parameters
40 41 42 |
# File 'lib/soaspec/spec_logger.rb', line 40 def time_test_run @time_test_run end |
.traffic_folder ⇒ Object
Folder to put API traffic logs
36 37 38 |
# File 'lib/soaspec/spec_logger.rb', line 36 def traffic_folder @traffic_folder end |
Class Method Details
.create ⇒ Logger
Create new log file if necessary and setup logging level
99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/soaspec/spec_logger.rb', line 99 def create create_log_file @logger = ApiLogger.new(traffic_file) # Where request and responses of APIs are stored @logger.progname = progname || 'SpecLog' @logger.formatter = proc do |_severity, datetime, progname, msg| = "#{progname}, [#{datetime.strftime(time_format)}] : #{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
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/soaspec/spec_logger.rb', line 115 def info() return unless log_api_traffic? create unless @logger if .respond_to? :each .each do || info() end else if block_given? @logger.info() { yield } else @logger.info() end end end |
.log_api_traffic=(set) ⇒ Object
Whether to log all API traffic
75 76 77 78 |
# File 'lib/soaspec/spec_logger.rb', line 75 def log_api_traffic=(set) @log_api_traffic = set reset_log end |
.log_api_traffic? ⇒ Boolean
Returns Whether to log all API traffic.
81 82 83 |
# File 'lib/soaspec/spec_logger.rb', line 81 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
69 70 71 72 |
# File 'lib/soaspec/spec_logger.rb', line 69 def reset_log @logger = nil RestClient.log = nil end |
.traffic_file ⇒ String
Returns Traffic file to create logs at.
61 62 63 64 65 66 |
# File 'lib/soaspec/spec_logger.rb', line 61 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
55 56 57 58 |
# File 'lib/soaspec/spec_logger.rb', line 55 def traffic_file=(file) @traffic_file = file reset_log end |