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.1.1.tar.gz (17.6 kB 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.1.1-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hestia_logger-1.1.1.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hestia_logger-1.1.1.tar.gz
Algorithm Hash digest
SHA256 e0ce3cb38411c3fdf2cf81edf307c9b49865998979674f41b1fc81c6438686e0
MD5 4dd67055cb6ce7c21539d32b6efcae1f
BLAKE2b-256 82634485591a711ac7f1f2a96e7e752f9ecb1e1659b4686dc795652ab6100693

See more details on using hashes here.

Provenance

The following attestation bundles were made for hestia_logger-1.1.1.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.1.1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for hestia_logger-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 769f45d5177792be71a0dac84a5ac51978b9426eb84e5109066f2d0709dbaa93
MD5 522ee61807a005e8968015939b90bfe0
BLAKE2b-256 057221ae9e7b4cdcd083a5c41614acab2f7d13bd93fdd796b03b5da3efb9e61b

See more details on using hashes here.

Provenance

The following attestation bundles were made for hestia_logger-1.1.1-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