Skip to content
Python SDK

Python SDK

Zero external dependencies.

Install

pip install logtrace-py

Usage

from logtrace_py import Client, CreateEventRequest

client = Client(api_key=os.environ["LOGTRACE_API_KEY"])

client.create_event(CreateEventRequest(
    name="user.signup",
    user_id="user_123",
    username="jane.doe",
    metadata={"plan": "pro", "referrer": "google"},
))

client.create_session(CreateSessionRequest(...))
client.create_audit_log(CreateAuditLogRequest(...))

Async

from logtrace_py import AsyncClient

async with AsyncClient(api_key=os.environ["LOGTRACE_API_KEY"]) as client:
    await client.create_event(CreateEventRequest(...))

Middleware

Automatically attaches request context (IP, method, endpoint, headers, status code) to every call made inside a handler.

WSGI (Flask)

from logtrace_py import WsgiMiddleware

app.wsgi_app = WsgiMiddleware(app.wsgi_app, client)

ASGI (FastAPI / Starlette)

from logtrace_py import AsgiMiddleware

app.add_middleware(AsgiMiddleware, client=client)

Django — add to settings.py:

import logtrace_py
LOGTRACE_CLIENT = logtrace_py.Client(api_key=os.environ["LOGTRACE_API_KEY"])

MIDDLEWARE = [
    "logtrace_py.middleware.DjangoMiddleware",
    ...
]

Inside any handler:

from logtrace_py import from_context

rc = from_context(client)
rc.create_event(CreateEventRequest(...))              # sync
await rc.async_create_event(CreateEventRequest(...))  # async

Error handling

from logtrace_py import LogtraceError

try:
    client.create_event(req)
except LogtraceError as e:
    print(e.status_code, e)