🧠 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
Release files for ailogx 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ailogx-1.1.0.tar.gz | 13.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ailogx-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.3 kB
Release files / ailogx-1.1.0.tar.gz
| Download URL | ailogx-1.1.0.tar.gz |
|---|---|
| Size | 13.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ca3a08630e82bb65ee1aefe094066ff7d8f8a564fc05e168cf34946ed4aa14fd
|
|
BLAKE2b-256 checksum How to use checksums |
8d7c7435e36c2c11432f867be606e71ee02fe54d8cb6fd9c51694427f54fa8ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / ailogx-1.1.0-py3-none-any.whl
| Download URL | ailogx-1.1.0-py3-none-any.whl |
|---|---|
| Size | 17.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
88ad3293740be129c0eb7628bd0c2422c3961f0e14a4cf5e27d8d07eb1f129ac
|
|
BLAKE2b-256 checksum How to use checksums |
a5ad2f98189a8c444e047dd767d6ad0116c0f20e885d84b5bc2484d34f275629
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|