Framework.Overlay.StructuredLogger (Framework v0.5.0)

View Source

Structured Logger for consistent correlation ID logging.

Provides standardized logging functions that automatically include {sequence, request_id, client_id, session_id} correlation metadata.

Ensures all framework logs carry required observability markers for debugging and operational monitoring.

Features

  • Automatic correlation ID injection
  • Sequence number tracking
  • Event type classification
  • PII-safe error redaction
  • Performance measurement integration

Summary

Functions

correlation_from_event(event)

Extract correlation context from outbox event.

Convenience function to build correlation context from an outbox event for consistent logging.

correlation_from_job(job)

Extract correlation context from Oban job.

Convenience function to build correlation context from an Oban job for effect execution logging.

log(level, message, metadata \\ %{}, correlation_context \\ %{})

Log with full correlation context.

Automatically includes sequence, request_id, client_id, session_id when available from the provided context.

Parameters

  • level: :debug | :info | :warning | :error

  • message: Log message string
  • metadata: Additional metadata map
  • correlation_context: Context containing correlation IDs and sequence

Examples

iex> context = %{
...>   sequence: 1234,
...>   request_id: "req-123",
...>   client_id: "client-456", 
...>   session_id: "session-789"
...> }
iex> Framework.Overlay.StructuredLogger.log(:info, "Operation completed", %{}, context)
:ok

log_effect(level, message, effect_type, external_id, correlation_context, metadata \\ %{})

Log effect execution with idempotency context.

Specialized logging for effect execution including idempotency keys and external service interaction details.

log_operation_end(operation_name, result, timing_context, metadata \\ %{})

Log operation end with duration calculation.

Calculates and logs operation duration when paired with log_operation_start/3.

log_operation_start(operation_name, correlation_context \\ %{}, metadata \\ %{})

Log operation start with timing context.

Creates a timing context for operation duration measurement. Use with log_operation_end/3 for complete timing.

log_safe_error(message, error, correlation_context \\ %{}, metadata \\ %{})

Log error with safe redaction.

Automatically redacts potentially sensitive information from error messages while preserving debugging utility.

log_sequence_event(level, message, sequence, event_type, correlation_context \\ %{}, metadata \\ %{})

Log sequence event with ordering context.

Specialized logging for sequencer/emitter events that includes sequence ordering and gap information.