Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

LifecycleLogging

LifecycleLogging Logo

A comprehensive logging utility for managing application lifecycle logs, combining the power of Python's logging with rich output formatting.

Documentation GitHub

Installation

pip install lifecyclelogging

Features

  • Configurable console and file logging outputs
  • Rich formatting for enhanced readability
  • Message storage with context and storage markers
  • Verbosity controls with bypass markers
  • Case-insensitive level filtering for allowed/denied storage rules
  • JSON data attachment support
  • Type-safe implementation
  • Seamless integration with existing logging systems
  • Automatic Gunicorn logger integration

Project Goals

  • Provide a batteries-included logging helper that stays compatible with modern Python releases
  • Keep configuration ergonomic while remaining type-safe and explicit
  • Offer sensible defaults that work locally and in containerized runtimes
  • Deliver reliable automation through testing, linting, and release workflows

Basic Usage

from lifecyclelogging import Logging

# Initialize logger
logger = Logging(
    enable_console=True,  # Enable console output
    enable_file=True,     # Enable file output
    logger_name="my_app"
)

# Basic logging
logger.logged_statement("Basic message", log_level="info")

# With context marker
logger.logged_statement(
    "Message with context",
    context_marker="STARTUP",
    log_level="info"
)

# With JSON data
logger.logged_statement(
    "Message with data",
    json_data={"key": "value"},
    log_level="debug"
)

Advanced Features

Verbosity Control

logger = Logging(
    enable_verbose_output=True,
    verbosity_threshold=2
)

# Only logged if verbosity threshold allows
logger.logged_statement(
    "Detailed debug info",
    verbose=True,
    verbosity=2,
    log_level="debug"
)

Verbosity Bypass Helpers

logger.register_verbosity_bypass_marker("IMPORTANT")

# Will be logged regardless of verbosity settings
logger.logged_statement(
    "Critical info",
    context_marker="IMPORTANT",
    verbose=True,
    verbosity=5,
    log_level="debug"
)

Message Storage

# Store message under a marker
logger.logged_statement(
    "Important event",
    storage_marker="EVENTS",
    log_level="info"
)

# Access stored messages
events = logger.stored_messages["EVENTS"]

Gunicorn Integration

When running under Gunicorn, LifecycleLogging automatically detects and inherits Gunicorn's logger configuration:

# The logger will automatically use Gunicorn's handlers if available
logger = Logging(
    enable_console=True,
    enable_file=True
)

Development

# Install development dependencies
pip install -e ".[dev,test,docs]"

# Run tests
make test

# Run linting and type checks
make check

# Build documentation
make docs

License

MIT License - See LICENSE for details.


Happy Logging!

Metadata

Release files for lifecyclelogging 202511.8.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 lifecyclelogging 202511.8.0
File Size Uploaded
lifecyclelogging-202511.8.0.tar.gz 21.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lifecyclelogging 202511.8.0
File Interpreter ABI Platform
lifecyclelogging-202511.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 34.4 kB

Release files / lifecyclelogging-202511.8.0.tar.gz

Download URL lifecyclelogging-202511.8.0.tar.gz
Size 21.3 kB
Tags Source
SHA-256 checksum
How to use checksums
fd112ceeb1b5e273e9ec311c5e1eebafc0b6f48288b84e21c3758e61f045e6f9
BLAKE2b-256 checksum
How to use checksums
6d9857b5f0f72d0c8dc85a10a8d3d2813ed58397dd192087721a594d488daf0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / lifecyclelogging-202511.8.0-py3-none-any.whl

Download URL lifecyclelogging-202511.8.0-py3-none-any.whl
Size 13.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
81073ced4257ec8b6fcf0909b2e45193c5493801f45c69b16251f9963e1af523
BLAKE2b-256 checksum
How to use checksums
9d4d59bc125cf2a9e36f9fa9f14790957088883c7c47378c0be1f47fa7c79e49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7
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