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.2.0.tar.gz (18.4 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.2.0-py3-none-any.whl (25.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hestia_logger-1.2.0.tar.gz
  • Upload date:
  • Size: 18.4 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.2.0.tar.gz
Algorithm Hash digest
SHA256 48eb7b3ef824e7a55d5255406a24f4acff7d88f1defbd043867021859fdcd175
MD5 2ceade0e4e2df2bbc69d3b61219970f8
BLAKE2b-256 81f0b421b0d4c88eb5eefdd0c0d3e08cdaaf69c5a1db22229a0dd6de62df80e2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: hestia_logger-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 25.1 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93ef401cc72005bf58b90d96e798935586d92e502dc2b7b1e4a0962a8f45f03c
MD5 f83d397f4c96f1a9763c9a44efc15ce3
BLAKE2b-256 494bf2b5c472d709a6efd046d043d38a306a1077ea158f1af12d43df45c00149

See more details on using hashes here.

Provenance

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