View Source Nexlm.Debug (Nexlm v0.1.15)

Debug logging utilities for Nexlm requests and responses.

Enables detailed logging of HTTP requests and responses to help with debugging provider integrations, caching behavior, and other issues.

Configuration

Enable debug logging in your runtime configuration:

config :nexlm, :debug, true

Or set the environment variable:

NEXLM_DEBUG=true

Log Output

When enabled, logs will include:

  • Provider being called
  • Full HTTP request (method, URL, headers, body)
  • Full HTTP response (status, headers, body)
  • Request/response timing
  • Any transformations applied to messages

Examples

# Enable debug logging
Application.put_env(:nexlm, :debug, true)

# Make a request - will now show detailed logs
Nexlm.complete("anthropic/claude-3-haiku-20240307", messages)

# Logs will show:
# [debug] [Nexlm] Provider: anthropic, Model: claude-3-haiku-20240307
# [debug] [Nexlm] Request: POST https://api.anthropic.com/v1/messages
# [debug] [Nexlm] Headers: %{"x-api-key" => "[REDACTED]", ...}
# [debug] [Nexlm] Body: %{model: "claude-3-haiku-20240307", messages: [...]}
# [debug] [Nexlm] Response: 200 OK (342ms)
# [debug] [Nexlm] Response Headers: %{"content-type" => "application/json", ...}
# [debug] [Nexlm] Response Body: %{content: [...], role: "assistant"}

Summary

Functions

Check if debug logging is enabled.

Log a debug message if debug logging is enabled.

Log request details if debug logging is enabled.

Log response details if debug logging is enabled.

Log message transformation if debug logging is enabled.

Time a function call and log the duration if debug logging is enabled.

Functions

Check if debug logging is enabled.

Checks both application configuration and environment variables.

Log a debug message if debug logging is enabled.

Link to this function

log_request(provider, method, url, headers, body)

View Source

Log request details if debug logging is enabled.

Link to this function

log_response(status, headers, body, duration_ms \\ nil)

View Source

Log response details if debug logging is enabled.

Link to this function

log_transformation(stage, data)

View Source

Log message transformation if debug logging is enabled.

Link to this function

time_call(description, fun)

View Source

Time a function call and log the duration if debug logging is enabled.