LLM-optimized structured logging and summarization for large-scale debugging.
Project description
🧠 LLM Logger
LLM Logger is a Python logging framework designed for seamless integration with Large Language Models (LLMs).
It produces structured, LLM-friendly logs that can be easily summarized or reasoned about — even across massive, deeply nested codebases.
🚀 Features
- 🪵 Structured JSON logs (timestamped, contextual, machine-readable)
- 🧠 LLM-optimized format with
reason,inputs,outputs, and semantic tags - 📂 Log grouping (
start_group,end_group) and function spans - 🔌 Modular LLM backend support via environment variable:
Ollama(local models)Groq(LLama, Gemma via API)OpenAI(GPT-3.5 / GPT-4)
- 📊 Summarization CLI with smart filtering and token-aware chunking
- 💾 Cache for LLM calls with expiration/cleanup
- 🧪 Test harness to simulate deeply nested logs
📦 Installation
pip install ailogx
🛠️ Basic Usage
from ailogx.core import LLMLogger
log = LLMLogger("my-service")
log.llm_info("User login started", inputs={"username": "admin"})
log.llm_decision("Using 2FA", reason="high-risk user")
log.llm_error("Login failed", reason="Invalid OTP")
🔁 Function Span
with log.function_span("process_payment", reason="checkout flow"):
# your logic
pass
📂 Grouping Logs
log.start_group("req-42", reason="incoming API request")
# your logs here
log.end_group("req-42")
📊 LLM Summarization
🧠 Environment-based Backend Selection
Supports:
LLM_LOGGER_BACKEND=ollama(default)LLM_LOGGER_BACKEND=groqLLM_LOGGER_BACKEND=openai
🧾 Example
export LLM_LOGGER_BACKEND=groq # or 'openai', 'ollama'
export GROQ_API_KEY="your-groq-api-key"
- You must have a Groq account.
- Supported models: gemma3, llama3-70b, etc.
export OPENAI_API_KEY="your-openai-api-key"
- You must have an OpenAI API key.Models like gpt-3.5-turbo, gpt-4, etc. are supported.
For selecting Models :
| Backend | Env Var to Set | Example Value |
|----------|----------------|-----------------------|
| groq | GROQ_MODEL | llama-3-70b-8192 |
| openai | OPENAI_MODEL | gpt-4o |
| ollama | OLLAMA_MODEL | llama3 |
python -m ailogx.summarize simulated_logs/deep_nested_logs.jsonl --filter=smart --fast
For using with relevant intent:
python -m ailogx.summarize huge_app_logs.jsonl --filter=smart --fast --intent "focus on authentication and signup failures"
Or call from Python:
from ailogx.summarizer.summarizer import multi_pass_summarize
from ailogx.backends.registry import get_analyzer
import json
with open("llm_logs.jsonl") as f:
logs = [json.loads(line) for line in f]
summary = multi_pass_summarize(logs, get_analyzer())
print(summary)
🧪 Test Harness
Generate deep, nested logs for benchmarking:
python ailogx/core.py
Outputs:
llm_simulated_logs.jsonl(LLMLogger)standard_simulated_logs.log(Python logging)
🔁 Cache & Optimization
- ✅ LLM responses cached to
.cache/ - 🧠 Token-aware chunking
- 🔎 Smart filtering (
--filter=smart,--intent="auth errors") - ⚡
--fastmode for shallow summaries before full deep dives
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ailogx-1.1.0.tar.gz.
File metadata
- Download URL: ailogx-1.1.0.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca3a08630e82bb65ee1aefe094066ff7d8f8a564fc05e168cf34946ed4aa14fd
|
|
| MD5 |
6b48fbd66b4c2befb3776d99e851a161
|
|
| BLAKE2b-256 |
8d7c7435e36c2c11432f867be606e71ee02fe54d8cb6fd9c51694427f54fa8ca
|
File details
Details for the file ailogx-1.1.0-py3-none-any.whl.
File metadata
- Download URL: ailogx-1.1.0-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88ad3293740be129c0eb7628bd0c2422c3961f0e14a4cf5e27d8d07eb1f129ac
|
|
| MD5 |
436e45c9e31aabe9cd727b8f2119b78c
|
|
| BLAKE2b-256 |
a5ad2f98189a8c444e047dd767d6ad0116c0f20e885d84b5bc2484d34f275629
|