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
44 45 46 |
# File 'lib/soaspec/spec_logger.rb', line 44 def logger @logger end |
.output_to_file ⇒ Object
Readers for log parameters
38 39 40 |
# File 'lib/soaspec/spec_logger.rb', line 38 def output_to_file @output_to_file end |
.output_to_terminal ⇒ Object
Readers for log parameters
38 39 40 |
# File 'lib/soaspec/spec_logger.rb', line 38 def output_to_terminal @output_to_terminal end |
.progname ⇒ String
Returns Name of program to include in logs.
40 41 42 |
# File 'lib/soaspec/spec_logger.rb', line 40 def progname @progname end |
.terminal_color ⇒ Object
Color shown when displaying in terminal
36 37 38 |
# File 'lib/soaspec/spec_logger.rb', line 36 def terminal_color @terminal_color end |
.time_format ⇒ Object
String representing date format to use for traffic
47 48 49 |
# File 'lib/soaspec/spec_logger.rb', line 47 def time_format @time_format || '%H:%M:%S' end |
.time_test_run ⇒ Object (readonly)
Readers for log parameters
38 39 40 |
# File 'lib/soaspec/spec_logger.rb', line 38 def time_test_run @time_test_run end |
.traffic_folder ⇒ Object
Folder to put API traffic logs
34 35 36 |
# File 'lib/soaspec/spec_logger.rb', line 34 def traffic_folder @traffic_folder end |
Class Method Details
.create ⇒ Logger
Create new log file if necessary and setup logging level
97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/soaspec/spec_logger.rb', line 97 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
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/soaspec/spec_logger.rb', line 113 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
73 74 75 76 |
# File 'lib/soaspec/spec_logger.rb', line 73 def log_api_traffic=(set) @log_api_traffic = set reset_log end |
.log_api_traffic? ⇒ Boolean
Returns Whether to log all API traffic.
79 80 81 |
# File 'lib/soaspec/spec_logger.rb', line 79 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
67 68 69 70 |
# File 'lib/soaspec/spec_logger.rb', line 67 def reset_log @logger = nil RestClient.log = nil end |
.traffic_file ⇒ String
Returns Traffic file to create logs at.
59 60 61 62 63 64 |
# File 'lib/soaspec/spec_logger.rb', line 59 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
53 54 55 56 |
# File 'lib/soaspec/spec_logger.rb', line 53 def traffic_file=(file) @traffic_file = file reset_log end |