UI 로그 시작하기 (UI Logs)
UI 로그 시작하기 (UI Logs)
LiteLLM 프록시를 운영하면 "이번 요청이 성공했나, 에러가 났나, 얼마나 토큰을 썼고 비용은 얼마지" 같은 걸 대시보드에서 한눈에 보고 싶어져요. LiteLLM UI의 Logs 페이지는 요청마다 지출(spend)·토큰 사용량·키·팀 이름을 보여주는 관측성 창구예요. 이 장은 그 로그 페이지의 기본 원리와 켜고 끄는 설정을 다룹니다.
출처: 공식문서
개요
기본적으로 어떤 로그가 기록되는지 먼저 정리할게요.
| Log Type | Tracked by Default |
|---|---|
| Success Logs | ✅ Yes |
| Error Logs | ✅ Yes |
| Request/Response Content Stored | ❌ No by Default, opt in with store_prompts_in_spend_logs |
기본적으로 LiteLLM은 요청·응답 내용을 저장하지 않아요. 지출·토큰·키·팀 같은 메타데이터는 추적하되, 실제 프롬프트와 응답 본문은 보관하지 않는 게 기본 동작이에요. 프라이버시 관점에선 오히려 안전한 기본값이죠.
로그 페이지에서 요청/응답 내용 추적하기
요청·응답 내용을 Logs 페이지에서 보고 싶다면 두 곳 중 한 곳에서 켤 수 있어요.
- UI(재시작 없음): UI Spend Log Settings에서 Logs → Settings → "Store Prompts in Spend Logs" 활성화 → Save. 즉시 적용되고 config보다 우선해요.
- config:
proxy_config.yaml에 추가(재시작 필요):
general_settings:
store_prompts_in_spend_logs: true
도구(tools) 추적
완료 요청에서 제공되고 호출된 도구를 확인할 수 있어요. 예를 들어 도구가 있는 완료 요청을 보내면:
curl -X POST 'http://localhost:4000/chat/completions' \
-H 'Authorization: Bearer ***' \
-H 'Content-Type: application/json' \
-d '{
"model": "{{openai_large}}",
"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"}
}
}
}
}
]
}'
Logs 페이지에서 어떤 도구가 제공됐고 어느 것이 호출됐는지 확인할 수 있어요.
에러 로그 DB 저장 끄기
에러 로그를 DB에 저장하고 싶지 않다면 이 설정으로 끌 수 있어요.
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`
지출 로그 DB 저장 끄기
지출 로그를 DB에 저장하고 싶지 않다면 이 설정으로 끕니다.
general_settings:
disable_spend_logs: True # Disable writing spend logs to DB
오래된 지출 로그 자동 삭제
지출 로그를 저장하고 있다면 DB를 빠르게 유지하기 위해 주기적으로 삭제하는 게 좋아요. 보관 기간은 두 곳에서 설정할 수 있어요.
- UI(재시작 없음): UI Spend Log Settings → Logs → Settings → Retention Period 설정 → Save.
- config:
proxy_config.yaml에 추가(재시작 필요):
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
정리(cleanup)는 보관 기간이 설정됐을 때만 돌아가고, 실행마다 문장당 삭제 행 수, 테이블당 문장 수, 전체 실행의 벽시계 예산으로 제한돼요. 기본값은 문장당 1000행, 테이블당 500문장, 5분이에요. 한도를 만난 실행은 거기서 멈추고 다음 틱에서 같은 기준점부터 재개하므로, 큰 백로그도 여러 번의 실행에 걸쳐 자연스럽게 비워져요.
전체 조절 항목과 기본 일정, 대형 테이블에 대한 가이드는 Spend Logs Deletion 문서를 참고하세요.
무엇이 기록되나?
기록되는 필드의 정확한 스키마는 schema.prisma에서 확인할 수 있어요.
더 알아보기
- 지출 추적과 리포팅 전체 흐름은 지출 추적 문서를 봐요.
- 지출 로그 보관·삭제 상세는 Spend Logs Deletion 문서를 참고하세요.
- 프록시 로깅 전반(외부 프로바이더로 보내기)은 프록시 로깅 가이드에 있어요.