Skip to main content

Getting Started with UI Logs

View Spend, Token Usage, Key, Team Name for Each Request to LiteLLM

Overview

Log TypeTracked by Default
Success Logs✅ Yes
Error Logs✅ Yes
Request/Response Content Stored❌ No by Default, opt in with store_prompts_in_spend_logs

By default LiteLLM does not track the request and response content.

Tracking - Request / Response Content in Logs Page

If you want to view request and response content on LiteLLM Logs, you can enable it in either place:

  • From the UI (no restart): Use UI Spend Log Settings — open Logs → Settings → enable "Store Prompts in Spend Logs" → Save. Takes effect immediately and overrides config.
  • From config: Add this to your proxy_config.yaml (requires restart):
general_settings:
store_prompts_in_spend_logs: true

Tracing Tools

View which tools were provided and called in your completion requests.

Example: Make a completion request with tools:

curl -X POST 'http://localhost:4000/chat/completions' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "What is the weather?"}],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"}
}
}
}
}
]
}'

Check the Logs page to see all tools provided and which ones were called.

Stop storing Error Logs in DB

If you do not want to store error logs in DB, you can opt out with this setting

general_settings:
disable_error_logs: True # Only disable writing error logs to DB, regular spend logs will still be written unless `disable_spend_logs: True`

Stop storing Spend Logs in DB

If you do not want to store spend logs in DB, you can opt out with this setting

general_settings:
disable_spend_logs: True # Disable writing spend logs to DB

Automatically Deleting Old Spend Logs

If you're storing spend logs, it might be a good idea to delete them regularly to keep the database fast.

You can set the retention period in either place:

  • From the UI (no restart): UI Spend Log Settings — Logs → Settings → set Retention Period → Save.
  • From config: Add the following to your proxy_config.yaml (requires restart):
general_settings:
maximum_spend_logs_retention_period: "7d" # Delete logs older than 7 days

# Optional: how often to run cleanup
maximum_spend_logs_retention_interval: "1d" # Run once per day

You can control how many logs are deleted per run using this environment variable:

SPEND_LOG_RUN_LOOPS=200 # Deletes up to 200,000 logs in one run

Set SPEND_LOG_CLEANUP_BATCH_SIZE to control how many logs are deleted per batch (default 1000).

For detailed architecture and how it works, see Spend Logs Deletion.

What gets logged?

Here's a schema breakdown of what gets logged.