Skip to main content

subprocess-logger

Consolidated handler for subprocess logging in Python.

Overview

subprocess-logger provides a unified way to capture and forward output from Python subprocesses to the standard logging system. It is useful for applications that spawn subprocesses and want to collect their stdout and stderr streams in a thread-safe, structured manner.

Features

  • Collects stdout and stderr from subprocesses and logs them using Python's logging module.
  • Allows log level customization at global and per process level for stdout and stderr.
  • Thread-safe collection and dispatching of logs.
  • Easy integration with existing logging configurations.

Installation

pip install subprocess-logger

Usage

Below is a basic usage example:

import logging
import subprocess
from subprocess_logger import install

# Configure root logger to print to console
logging.basicConfig(level=logging.DEBUG, format="%(levelname)s %(message)s")

# Create a collector instance
collector = install(stdout_level=logging.INFO, stderr_level=logging.WARNING)

# Start a subprocess that prints to stdout and stderr
proc = subprocess.Popen(
    ["python", "-c", "import sys; print('hello from stdout'); sys.stderr.write('hello from stderr\\n')"],
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE
)

# Attach the subprocess to the collector
collector.attach(proc, logger_name="demo_subprocess")

# Wait for the subprocess to finish
proc.wait()

# Stop the collector (waits for all logs to be processed)
collector.stop()

Testing

To run unit tests, use the following command:

pytest

Or, if you have tox installed:

tox

License

This project is licensed under the MIT License.

Release files for subprocess-logger 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for subprocess-logger 0.3.0
File Size Uploaded
subprocess_logger-0.3.0.tar.gz 5.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for subprocess-logger 0.3.0
File Interpreter ABI Platform
subprocess_logger-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 10.5 kB

Release files / subprocess_logger-0.3.0.tar.gz

Download URL subprocess_logger-0.3.0.tar.gz
Size 5.3 kB
Tags Source
SHA-256 checksum
How to use checksums
348639f5429642f28cf5652f210e9f66719aa0c0d2d13ad2d688fd84a94ae734
BLAKE2b-256 checksum
How to use checksums
b557084e1afd45d16f9c5ae7de3cd52e8b79dacdb45f10155020df217c35db3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.6

Release files / subprocess_logger-0.3.0-py3-none-any.whl

Download URL subprocess_logger-0.3.0-py3-none-any.whl
Size 5.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
03a1fdd2cd985fcfba810b915bcdf77f3b938eec4f6c12efbbb42335c21e312c
BLAKE2b-256 checksum
How to use checksums
49cd5995d7a71145ec8b342af1c6be0c06067d98f673f3c11cccde3adcd14b93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.6

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page