Skip to main content

Centralized logging utilities for Python services.

Project description

InstruktAI Python Logger

Centralized logging utilities for Python services.

This repo provides a shared, consistent logging contract (env vars + output format + log location) intended to keep logs highly queryable (including by AIs that only read a tail window).

Background and rationale live in docs/design.md. Publishing notes live in docs/publishing.md.

Install (editable, local workspace)

From PyPI (recommended):

pip install instrukt-ai-logger

From GitHub:

pip install git+ssh://git@github.com/InstruktAI/python-logger.git

API

  • Python entrypoint: instrukt_ai_logging.configure_logging(...)
  • Logger helper: instrukt_ai_logging.get_logger(name) (named **kv logging)
  • CLI entrypoint: instrukt-ai-logs (reads recent log lines)

Example:

import logging
from instrukt_ai_logging import configure_logging

configure_logging("teleclaude")
logger = logging.getLogger("teleclaude.core")
logger.info("job_started", job_id="abc123", user_id=123)

Per-process log files (multi-producer apps)

When several processes belong to the same app (a daemon plus a watcher plus a cron, for example), each one can own its own file under the same app directory by passing source=:

configure_logging("teleclaude")                       # → teleclaude.log (default)
configure_logging("teleclaude", source="docs-watch")  # → docs-watch.log
configure_logging("teleclaude", source="cron")        # → cron.log

The .log extension is always appended; pass the bare stem. Files all live under /var/log/instrukt-ai/{app}/. The CLI merges them transparently (see below).

Environment variables (contract)

Per-app prefix model (example uses TELECLAUDE_):

  • TELECLAUDE_LOG_LEVEL
  • TELECLAUDE_THIRD_PARTY_LOG_LEVEL
  • TELECLAUDE_THIRD_PARTY_LOGGERS (comma-separated logger prefixes to spotlight, e.g. httpcore,telegram)
  • TELECLAUDE_MUTED_LOGGERS (comma-separated logger prefixes to force to WARNING+, e.g. teleclaude.cli.tui)

Global:

  • INSTRUKT_AI_LOG_ROOT (optional log root override)

Log location (contract)

Default target:

  • /var/log/instrukt-ai/{app}/{app}.log

The installer for each service is expected to create the directory and set write permissions for the daemon user. If the default location is not writable, the implementation will fall back to a user-writable directory and/or require INSTRUKT_AI_LOG_ROOT.

CLI

# Last 10 minutes (default), follows
instrukt-ai-logs teleclaude -f

# Last 2 hours
instrukt-ai-logs teleclaude --since 2h

# Filter with regex
instrukt-ai-logs teleclaude --since 10m --grep 'logger=teleclaude'

# Follow (tail -f style) after printing the --since window
instrukt-ai-logs teleclaude --since 10m --follow

# Restrict to specific source streams (per-process files)
instrukt-ai-logs teleclaude --since 1h --logs=cron,docs-watch

Without --logs, every *.log* file in the app directory is merged by timestamp (rotation suffixes included). With --logs=stem1,stem2, only files whose stem matches an entry are read — exact stem match, so --logs=cron picks cron.log, cron.log.0, cron.log.1 and never cron-backup.log. Follow mode reads each selected file with one polling thread per file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

instruktai_python_logger-0.4.1.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

instruktai_python_logger-0.4.1-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file instruktai_python_logger-0.4.1.tar.gz.

File metadata

  • Download URL: instruktai_python_logger-0.4.1.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for instruktai_python_logger-0.4.1.tar.gz
Algorithm Hash digest
SHA256 862c939e57315b92d53e5f9b651738f91650792de7b6dea8dea413ea6aa67e08
MD5 c834059aff05fbf2e915e92a041edde7
BLAKE2b-256 ed3dba5544346821e30d5158bc98f42ff87690a2ccede4a6c473a9300867fd1e

See more details on using hashes here.

File details

Details for the file instruktai_python_logger-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for instruktai_python_logger-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 09edd88096c5407dd9f456cc9fc25b0e0f3b6e5ffa6402d88359d09f9cb582dd
MD5 ffb2942795e0aa8a8ac1c4a96a6bdcc1
BLAKE2b-256 28c59f636aa0644aefcfb3a2c67cc3fe4d0862b5494e03f2f21328cb5d5391f3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page