Class: BudaApi::Logger
- Inherits:
-
Object
- Object
- BudaApi::Logger
- Defined in:
- lib/buda_api/logger.rb
Overview
Centralized logging functionality for the SDK
Constant Summary collapse
- LOG_LEVELS =
{ debug: ::Logger::DEBUG, info: ::Logger::INFO, warn: ::Logger::WARN, error: ::Logger::ERROR, fatal: ::Logger::FATAL }.freeze
Class Attribute Summary collapse
-
.logger ⇒ Object
Returns the value of attribute logger.
Class Method Summary collapse
-
.debug(message) ⇒ Object
Log debug messages.
-
.error(message) ⇒ Object
Log error messages.
-
.fatal(message) ⇒ Object
Log fatal messages.
-
.info(message) ⇒ Object
Log info messages.
-
.log_error(error, context: {}) ⇒ Object
Log errors with full context.
-
.log_request(method, url, headers: {}, body: nil) ⇒ Object
Log HTTP requests in debug mode.
-
.log_response(status, headers: {}, body: nil, duration: nil) ⇒ Object
Log HTTP responses in debug mode.
-
.setup(level: :info, output: $stdout) ⇒ Object
Initialize the logger.
-
.warn(message) ⇒ Object
Log warning messages.
Class Attribute Details
.logger ⇒ Object
Returns the value of attribute logger.
17 18 19 |
# File 'lib/buda_api/logger.rb', line 17 def logger @logger end |
Class Method Details
.debug(message) ⇒ Object
Log debug messages
30 31 32 |
# File 'lib/buda_api/logger.rb', line 30 def debug() current_logger.debug() end |
.error(message) ⇒ Object
Log error messages
45 46 47 |
# File 'lib/buda_api/logger.rb', line 45 def error() current_logger.error() end |
.fatal(message) ⇒ Object
Log fatal messages
50 51 52 |
# File 'lib/buda_api/logger.rb', line 50 def fatal() current_logger.fatal() end |
.info(message) ⇒ Object
Log info messages
35 36 37 |
# File 'lib/buda_api/logger.rb', line 35 def info() current_logger.info() end |
.log_error(error, context: {}) ⇒ Object
Log errors with full context
74 75 76 77 78 79 80 |
# File 'lib/buda_api/logger.rb', line 74 def log_error(error, context: {}) error_msg = "Error: #{error.class.name} - #{error.}" error_msg += "\nContext: #{context}" if context&.any? error_msg += "\nBacktrace:\n #{error.backtrace.join("\n ")}" if error.backtrace error(error_msg) end |
.log_request(method, url, headers: {}, body: nil) ⇒ Object
Log HTTP requests in debug mode
55 56 57 58 59 60 61 |
# File 'lib/buda_api/logger.rb', line 55 def log_request(method, url, headers: {}, body: nil) return unless debug_enabled? debug("→ #{method.upcase} #{url}") debug("→ Headers: #{headers}") if headers&.any? debug("→ Body: #{body}") if body end |
.log_response(status, headers: {}, body: nil, duration: nil) ⇒ Object
Log HTTP responses in debug mode
64 65 66 67 68 69 70 71 |
# File 'lib/buda_api/logger.rb', line 64 def log_response(status, headers: {}, body: nil, duration: nil) return unless debug_enabled? debug("← #{status}") debug("← Headers: #{headers}") if headers&.any? debug("← Body: #{truncate_body(body)}") if body debug("← Duration: #{duration}ms") if duration end |
.setup(level: :info, output: $stdout) ⇒ Object
Initialize the logger
20 21 22 23 24 25 26 27 |
# File 'lib/buda_api/logger.rb', line 20 def setup(level: :info, output: $stdout) @logger = ::Logger.new(output) @logger.level = LOG_LEVELS[level] || LOG_LEVELS[:info] @logger.formatter = proc do |severity, datetime, progname, msg| "[#{datetime.strftime('%Y-%m-%d %H:%M:%S')}] #{severity.ljust(5)} BudaApi: #{msg}\n" end @logger end |
.warn(message) ⇒ Object
Log warning messages
40 41 42 |
# File 'lib/buda_api/logger.rb', line 40 def warn() current_logger.warn() end |