Class: Seams::Observability::Adapters::RailsLogger
- Inherits:
-
Seams::Observability::Adapter
- Object
- Seams::Observability::Adapter
- Seams::Observability::Adapters::RailsLogger
- Defined in:
- lib/seams/observability/adapters/rails_logger.rb
Overview
Default observability adapter — wraps Rails.logger (or a stdout Logger when Rails isn’t booted) and emits messages tagged with the seams namespace plus structured key=value context.
Instance Method Summary collapse
-
#initialize(logger: nil) ⇒ RailsLogger
constructor
A new instance of RailsLogger.
- #measure(operation, **context) ⇒ Object
Methods inherited from Seams::Observability::Adapter
Constructor Details
#initialize(logger: nil) ⇒ RailsLogger
Returns a new instance of RailsLogger.
13 14 15 16 |
# File 'lib/seams/observability/adapters/rails_logger.rb', line 13 def initialize(logger: nil) super() @logger = logger || default_logger end |
Instance Method Details
#measure(operation, **context) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/seams/observability/adapters/rails_logger.rb', line 24 def measure(operation, **context) start = monotonic_ms result = yield duration = (monotonic_ms - start).round(2) info(operation, **context, duration_ms: duration) result rescue StandardError => e duration = (monotonic_ms - start).round(2) error(operation, **context, duration_ms: duration, error: "#{e.class}: #{e.}") raise end |