Skip to main content

HESTIA is a high-performance, structured logging system for Python applications. Supports async logging, Elastic Stack integration, structured JSON logs, and colorized console output.

Project description

HESTIA Logger

Python PyPI - Version PyPI Downloads License: Apache 2.0 GitHub

A high-performance, structured logging system for Python applications.
Supports async logging, Elastic Stack integration, structured JSON logs, and colorized console output.

Key Features

  • Structured JSON & Human-Readable Logs (Optimized for Elastic Stack)
  • Dynamic Metadata Support (user_id, request_id, etc.)
  • Application-Aware Logging (get_logger("my_app"))
  • Multi-Thread & Multi-Process Friendly (thread_id, process_id)
  • Colored Console Output (INFO in green, ERROR in red, etc.)
  • Internal Logger for Debugging the Logging System
  • Supports File Rotation & Future Cloud Integration

Documentation

The full documentation is available on GitHub Pages.


Installation

pip install hestia-logger

Usage

1. Basic Setup

from hestia_logger import get_logger

# Get a logger instance
logger = get_logger("development")

# Log messages with different levels
logger.debug("This is a DEBUG log")
logger.info("Application started successfully")
logger.warning("Low disk space warning")
logger.error("Failed to connect to database")
logger.critical("System is down!")

2. Decorator Example

from hestia_logger import get_logger
from hestia_logger.decorators import log_execution

# Initialize the logger
logger = get_logger("decorator")

@log_execution
def add_numbers(a, b):
     """Adds two numbers and returns the result."""
     return a + b

@log_execution
def simulate_task():
     """Simulates a task that takes time."""
     import time
     time.sleep(2)
     return "Task completed!"

# Call the functions
if __name__ == "__main__":
     result = add_numbers(5, 10)
     logger.info(f"Result: {result}")

     task_status = simulate_task()
     logger.info(f"Task Status: {task_status}")

3. Adding Custom Metadata

from hestia_logger import get_logger

logger = get_logger("my_application", metadata={"user_id": "12345", 
                                                "request_id": "abcd-xyz"})

logger.info("User login successful")

Log File Structure

HESTIA Logger creates two main log files:

File Format Purpose
app.log JSON Machine-readable (Elastic Stack)
all.log Text Human-readable debug logs

Log Colors (Console Output)

Log Level Color
DEBUG 🔵 Blue
INFO ⚫ Black
WARNING 🟡 Yellow
ERROR 🔴 Red
CRITICAL 🔥 Bold Red

Configuration

HESTIA Logger supports environment-based configuration via .env or export:

# Environment Variables
ENVIRONMENT=local
LOG_LEVEL=INFO

Example Log Output

Console (Colorized) + all.log (Text Format)

2025-03-06 20:40:23 - my_application - INFO - Application started!

app.log (JSON Format - Elastic Stack Ready)

{
    "timestamp": "2025-03-06T20:40:23.286Z",
    "level": "INFO",
    "hostname": "server-1",
    "container_id": "N/A",
    "application": "my_application",
    "event": "Application started successfully!",
    "thread": 12345,
    "process": 56789,
    "uuid": "d3f5b2c1-4f27-46a8-b3d2-f4a7a5c3ef29",
    "metadata": {
        "user_id": "12345",
        "request_id": "abcd-xyz"
    }
}

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

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

hestia_logger-1.3.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

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

hestia_logger-1.3.0-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

File details

Details for the file hestia_logger-1.3.0.tar.gz.

File metadata

  • Download URL: hestia_logger-1.3.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hestia_logger-1.3.0.tar.gz
Algorithm Hash digest
SHA256 e5b2f5020bbbb394adb1ba4d9d2abbe276ad8863c4de517df88897d26248ebc1
MD5 6732ddbbf86563d5857e54d6cd1c709f
BLAKE2b-256 1687390bdc9b4d0a55c0722fb3eb75cac0935eb50054ad0db24f4d6a95e97f36

See more details on using hashes here.

Provenance

The following attestation bundles were made for hestia_logger-1.3.0.tar.gz:

Publisher: publish-to-pypi.yml on fox-techniques/hestia-logger

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

File details

Details for the file hestia_logger-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: hestia_logger-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 26.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hestia_logger-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1d5c24776f067f496b3efd27aace3e6e235deaaf4222f807dc1b609f13a518e9
MD5 df0ed02e5b7cdd91fe2b26ebbf867e0a
BLAKE2b-256 24b2ed0bd70fc52573cfff60b837389fcaf1ce75e44be8dc59d8d2ddc75719f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for hestia_logger-1.3.0-py3-none-any.whl:

Publisher: publish-to-pypi.yml on fox-techniques/hestia-logger

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