Skip to main content

Lightweight Python logger with timestamped file output, caller stack tracing, and working-directory-scoped file utilities

Project description

ntnlog

Coverage

Lightweight Python logger with timestamped file output, caller stack tracing, and working-directory-scoped file utilities. Next-To-Nothing setup — just import and log.

Features

  • Caller stack tracing: Automatically records where in your code a log came from
  • Timestamped file output: Logs written to daily files with no configuration required
  • File utilities: Safe, working-directory-scoped file operations with error handling
  • Thread-safe: File writes are protected by a lock

Installation

pip install ntnlog

Quick Start

from ntnlog import Logger

log = Logger()

log("Application started")
log("Important message", print_to_console=True)
log("Debug info", print_to_console=True, console_message="DEBUG: Debug info")

# Enable detailed call-stack tracing
log.enable_log_tracing(True)
log("Traced message")

# Named loggers — useful when multiple instances log to the same file
app_logger = Logger(name="app")
worker_logger = Logger(name="worker")
# Output: [2026-05-13 15:46:34][app][main.py:12] message
#         [2026-05-13 15:46:34][worker][worker.py:8] message

# Custom log directory
log = Logger(log_dir="my_logs")

# Project-aware frame filtering
log = Logger(project_dir="/path/to/project")

Configuration

from ntnlog.ntn_config import GLOBAL_LOGGING_ENABLED, GLOBAL_LOG_TRACING_ENABLED
  • GLOBAL_LOGGING_ENABLED: Master on/off switch for all loggers (default: True)
  • GLOBAL_LOG_TRACING_ENABLED: Master on/off switch for tracing (default: True)

Per-instance controls:

log.enable_logging(False)      # disable this logger
log.enable_log_tracing(True)   # enable tracing for this logger

Modules

Logger (ntn_logging.py)

Main logging class. Writes timestamped entries to ./logs/<date>_logging.txt and optionally traces the full call stack to show exactly which file and line triggered the log.

File Utilities (ntn_file_utils.py)

Path and file verification scoped to the working directory:

  • file_verify_path(base, directory) — confirms a directory exists within the working dir
  • file_verify_file(base, filename, operator) — validates a file for read/write/execute

Utils (ntn_utils.py)

Working-directory-scoped path helpers with a clean exception-based API:

  • ntnlog.utils.get_working_dir() — returns the current working directory
  • ntnlog.utils.resolve_path(path, must_exist=False) — resolves a path within the working directory, raises ValueError if it escapes

Configuration (ntn_config.py)

Global flags controlling logging and tracing behaviour across all logger instances.

Development

pip install -e ".[dev]"
pytest
pytest -v
pytest tests/test_ntn_logging.py

License

MIT

Author

Nathan T Nguyen

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

ntnlog-0.4.0.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

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

ntnlog-0.4.0-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file ntnlog-0.4.0.tar.gz.

File metadata

  • Download URL: ntnlog-0.4.0.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ntnlog-0.4.0.tar.gz
Algorithm Hash digest
SHA256 168fe54efb612db779dd9a4a788dd601e15a2e6f905d33796a87c68e1fe47be9
MD5 bd6f5e417209e4af110abe72325037f8
BLAKE2b-256 e504e391f332f3684338e26b9f219b226a22cf280b096756cb14aa8b673ef320

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntnlog-0.4.0.tar.gz:

Publisher: publish.yml on NhatNguyen5/ntnlog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ntnlog-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: ntnlog-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ntnlog-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 54d6dd455cb2620c6ed732711c15af8b25c432bff3294201b4a517cdd33cd078
MD5 343bff772185156a1b59f407e2db0689
BLAKE2b-256 1e4797ebd2e776e0b7be26d1cc75a0e044aded7ea00db846f328c93e51e2af17

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntnlog-0.4.0-py3-none-any.whl:

Publisher: publish.yml on NhatNguyen5/ntnlog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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