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).
Logs gRPC request/response information.
Logs webhook processing information.
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
Logs debug information.
Parameters
message
- Debug messagemetadata
- Additional metadata (optional)
Logs error messages.
Parameters
message
- Error messagemetadata
- Additional metadata (optional)
Logs informational messages.
Parameters
message
- Info messagemetadata
- Additional metadata (optional)
Logs a structured message with context and telemetry.
Parameters
level
- Log level (:debug, :info, :warning, :error)message
- Log messagemetadata
- 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"})
Logs connection events (connect, disconnect, reconnect).
Parameters
event
- Connection event (:connect, :disconnect, :reconnect)host
- Server hostmetadata
- Additional metadata (optional)
Logs gRPC request/response information.
Parameters
service
- gRPC service namemethod
- gRPC method namerequest
- Request data (optional)response
- Response data (optional)metadata
- Additional metadata (optional)
Logs webhook processing information.
Parameters
event_type
- Webhook event typeprocessing_result
- Result of processing (:ok, :error, etc.)metadata
- Additional metadata (optional)
Sets up telemetry handlers for LiveKit events.
This should be called during application startup to register telemetry event handlers.
Examples
Livekitex.Logger.setup_telemetry()
Logs the start of an operation and returns a timer function.
Parameters
operation
- Operation namemetadata
- 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
Removes telemetry handlers.
Examples
Livekitex.Logger.teardown_telemetry()
Logs warning messages.
Parameters
message
- Warning messagemetadata
- Additional metadata (optional)
Logs an operation with automatic timing.
Parameters
operation
- Operation namemetadata
- 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)