Jido.Signal.Bus.Middleware.Logger (Jido Signal v1.0.0)

View Source

A middleware that logs signal activity using Elixir's Logger.

This middleware provides comprehensive logging of signal flows through the bus, including publishing events, dispatch events, and errors. It's useful for debugging, monitoring, and auditing signal activity.

Configuration Options

  • :level - Log level to use (default: :info)
  • :log_publish - Whether to log publish events (default: true)
  • :log_dispatch - Whether to log dispatch events (default: true)
  • :log_errors - Whether to log errors (default: true)
  • :include_signal_data - Whether to include signal data in logs (default: false)
  • :max_data_length - Maximum length of signal data to log (default: 100)

Examples

# Basic logging at info level
middleware = [{Jido.Signal.Bus.Middleware.Logger, []}]

# Debug level with signal data
middleware = [
  {Jido.Signal.Bus.Middleware.Logger, [
    level: :debug,
    include_signal_data: true,
    max_data_length: 200
  ]}
]

# Only log errors
middleware = [
  {Jido.Signal.Bus.Middleware.Logger, [
    log_publish: false,
    log_dispatch: false,
    log_errors: true
  ]}
]

Summary

Types

context()

@type context() :: Jido.Signal.Bus.Middleware.context()

dispatch_result()

@type dispatch_result() :: Jido.Signal.Bus.Middleware.dispatch_result()