Livekitex.Logger (livekitex v0.1.0)

Structured logging system for LiveKit Elixir SDK.

This module provides structured logging with telemetry integration, context tracking, and performance monitoring for LiveKit operations.

Summary

Functions

Logs debug information.

Logs error messages.

Logs informational messages.

Logs a structured message with context and telemetry.

Logs connection events (connect, disconnect, reconnect).

Sets up telemetry handlers for LiveKit events.

Logs the start of an operation and returns a timer function.

Removes telemetry handlers.

Logs warning messages.

Logs an operation with automatic timing.

Functions

debug(message, metadata \\ %{})

Logs debug information.

Parameters

  • message - Debug message
  • metadata - Additional metadata (optional)

error(message, metadata \\ %{})

Logs error messages.

Parameters

  • message - Error message
  • metadata - Additional metadata (optional)

info(message, metadata \\ %{})

Logs informational messages.

Parameters

  • message - Info message
  • metadata - Additional metadata (optional)

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

Logs a structured message with context and telemetry.

Parameters

  • level - Log level (:debug, :info, :warning, :error)
  • message - Log message
  • metadata - Additional metadata (optional)

Examples

iex> Livekitex.Logger.log(:info, "Room created", %{room_name: "test-room", participants: 2})

iex> Livekitex.Logger.log(:error, "Connection failed", %{host: "localhost:7880", error: "timeout"})

log_connection(event, host, metadata \\ %{})

Logs connection events (connect, disconnect, reconnect).

Parameters

  • event - Connection event (:connect, :disconnect, :reconnect)
  • host - Server host
  • metadata - Additional metadata (optional)

log_grpc_call(service, method, request \\ nil, response \\ nil, metadata \\ %{})

Logs gRPC request/response information.

Parameters

  • service - gRPC service name
  • method - gRPC method name
  • request - Request data (optional)
  • response - Response data (optional)
  • metadata - Additional metadata (optional)

log_webhook(event_type, processing_result, metadata \\ %{})

Logs webhook processing information.

Parameters

  • event_type - Webhook event type
  • processing_result - Result of processing (:ok, :error, etc.)
  • metadata - Additional metadata (optional)

setup_telemetry()

Sets up telemetry handlers for LiveKit events.

This should be called during application startup to register telemetry event handlers.

Examples

Livekitex.Logger.setup_telemetry()

start_operation(operation, metadata \\ %{})

Logs the start of an operation and returns a timer function.

Parameters

  • operation - Operation name
  • metadata - Additional metadata (optional)

Returns

A function that when called will log the operation completion with duration.

Examples

timer = Livekitex.Logger.start_operation("create_room", %{room_name: "test"})
# ... perform operation ...
timer.() # Logs completion with duration

teardown_telemetry()

Removes telemetry handlers.

Examples

Livekitex.Logger.teardown_telemetry()

warning(message, metadata \\ %{})

Logs warning messages.

Parameters

  • message - Warning message
  • metadata - Additional metadata (optional)

with_operation(operation, metadata \\ %{}, fun)

Logs an operation with automatic timing.

Parameters

  • operation - Operation name
  • metadata - Additional metadata (optional)
  • fun - Function to execute and time

Returns

The result of the function execution.

Examples

result = Livekitex.Logger.with_operation("create_room", %{room_name: "test"}, fn ->
  # ... perform operation ...
  {:ok, room}
end)