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.1.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.1-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hestia_logger-1.3.1.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.1.tar.gz
Algorithm Hash digest
SHA256 ab7d3e0c49ccb597aaf8307e0e14d2c2ce028130ed2b3a2e5d18698cf058cfd2
MD5 f7957c13ed0ebffba7a1c2b928a2a2d1
BLAKE2b-256 083b29e6966ce19fed013214410b76505ad4be3e9e282aaec4c8ae9fe96197a7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: hestia_logger-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 26.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 431b97c5947c7b40e46a2ce8ed17a523efcbd500ff1323327267fdf1f35ae8ae
MD5 44cbe64c7a4b2b8ce3db9f1cbf1fcbf8
BLAKE2b-256 afa43ba36e844096010bb6d95b9e01bc7f07a3a66e696cbdcaacf3ae2fff16ae

See more details on using hashes here.

Provenance

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