Class: Basecamp::LoggerHooks
- Inherits:
-
Object
- Object
- Basecamp::LoggerHooks
- Includes:
- Hooks
- Defined in:
- lib/basecamp/logger_hooks.rb
Overview
Hooks implementation that logs to Ruby's Logger.
Instance Method Summary collapse
-
#initialize(logger, level: :debug) ⇒ LoggerHooks
constructor
A new instance of LoggerHooks.
-
#on_operation_end(info, result) ⇒ void
included
from Hooks
Called when a service operation completes (success or failure).
-
#on_operation_start(info) ⇒ void
included
from Hooks
Called when a service operation starts (e.g., projects.list, todos.create).
- #on_paginate(url, page) ⇒ Object
- #on_request_end(info, result) ⇒ Object
- #on_request_start(info) ⇒ Object
- #on_retry(info, attempt, error, delay) ⇒ Object
Constructor Details
#initialize(logger, level: :debug) ⇒ LoggerHooks
Returns a new instance of LoggerHooks.
16 17 18 19 |
# File 'lib/basecamp/logger_hooks.rb', line 16 def initialize(logger, level: :debug) @logger = logger @level = level end |
Instance Method Details
#on_operation_end(info, result) ⇒ void Originally defined in module Hooks
This method returns an undefined value.
Called when a service operation completes (success or failure).
#on_operation_start(info) ⇒ void Originally defined in module Hooks
This method returns an undefined value.
Called when a service operation starts (e.g., projects.list, todos.create).
#on_paginate(url, page) ⇒ Object
42 43 44 |
# File 'lib/basecamp/logger_hooks.rb', line 42 def on_paginate(url, page) @logger.send(@level, "Fetching page #{page}: #{url}") end |
#on_request_end(info, result) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/basecamp/logger_hooks.rb', line 25 def on_request_end(info, result) if result.error @logger.send(@level, "HTTP #{info.method} #{info.url} failed: #{result.error.}") else cache_info = result.from_cache ? " (cached)" : "" @logger.send(@level, "HTTP #{info.method} #{info.url} -> #{result.status_code}#{cache_info} (#{format("%.3f", result.duration)}s)") end end |
#on_request_start(info) ⇒ Object
21 22 23 |
# File 'lib/basecamp/logger_hooks.rb', line 21 def on_request_start(info) @logger.send(@level, "HTTP #{info.method} #{info.url} (attempt #{info.attempt})") end |
#on_retry(info, attempt, error, delay) ⇒ Object
36 37 38 39 40 |
# File 'lib/basecamp/logger_hooks.rb', line 36 def on_retry(info, attempt, error, delay) @logger.send(@level, "Retrying #{info.method} #{info.url} (attempt #{attempt}) in #{format("%.2f", delay)}s: #{error.}") end |