Module: SecApi::StructuredLogger
- Extended by:
- StructuredLogger
- Included in:
- StructuredLogger
- Defined in:
- lib/sec_api/structured_logger.rb
Overview
Provides structured JSON logging for SEC API operations.
This module can be used directly or via the default_logging config option. All log events follow the secapi.* naming convention for easy filtering in log aggregation tools like ELK, Datadog, Splunk, or CloudWatch.
Instance Method Summary collapse
-
#log_error(logger, level, request_id:, error:, url:, method:) ⇒ void
Logs a request error event (final failure after all retries).
-
#log_request(logger, level, request_id:, method:, url:) ⇒ void
Logs a request start event.
-
#log_response(logger, level, request_id:, status:, duration_ms:, url:, method:) ⇒ void
Logs a request completion event.
-
#log_retry(logger, level, request_id:, attempt:, max_attempts:, error_class:, error_message:, will_retry_in:) ⇒ void
Logs a retry attempt event.
Instance Method Details
#log_error(logger, level, request_id:, error:, url:, method:) ⇒ void
This method returns an undefined value.
Logs a request error event (final failure after all retries).
164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/sec_api/structured_logger.rb', line 164 def log_error(logger, level, request_id:, error:, url:, method:) log_event(logger, level, { event: "secapi.request.error", request_id: request_id, error_class: error.class.name, error_message: error., method: method.to_s.upcase, url: url, timestamp: }) end |
#log_request(logger, level, request_id:, method:, url:) ⇒ void
This method returns an undefined value.
Logs a request start event.
65 66 67 68 69 70 71 72 73 |
# File 'lib/sec_api/structured_logger.rb', line 65 def log_request(logger, level, request_id:, method:, url:) log_event(logger, level, { event: "secapi.request.start", request_id: request_id, method: method.to_s.upcase, url: url, timestamp: }) end |
#log_response(logger, level, request_id:, status:, duration_ms:, url:, method:) ⇒ void
This method returns an undefined value.
Logs a request completion event.
96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/sec_api/structured_logger.rb', line 96 def log_response(logger, level, request_id:, status:, duration_ms:, url:, method:) log_event(logger, level, { event: "secapi.request.complete", request_id: request_id, status: status, duration_ms: duration_ms, method: method.to_s.upcase, url: url, success: status < 400, timestamp: }) end |
#log_retry(logger, level, request_id:, attempt:, max_attempts:, error_class:, error_message:, will_retry_in:) ⇒ void
This method returns an undefined value.
Logs a retry attempt event.
132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/sec_api/structured_logger.rb', line 132 def log_retry(logger, level, request_id:, attempt:, max_attempts:, error_class:, error_message:, will_retry_in:) log_event(logger, level, { event: "secapi.request.retry", request_id: request_id, attempt: attempt, max_attempts: max_attempts, error_class: error_class, error_message: , will_retry_in: will_retry_in, timestamp: }) end |