Skip to main content

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.

Release files for hestia-logger 1.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hestia-logger 1.3.1
File Size Uploaded
hestia_logger-1.3.1.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for hestia-logger 1.3.1
File Interpreter ABI Platform
hestia_logger-1.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / hestia_logger-1.3.1.tar.gz

Download URL hestia_logger-1.3.1.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
ab7d3e0c49ccb597aaf8307e0e14d2c2ce028130ed2b3a2e5d18698cf058cfd2
BLAKE2b-256 checksum
How to use checksums
083b29e6966ce19fed013214410b76505ad4be3e9e282aaec4c8ae9fe96197a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 7, 2025.

Transparency log

Release files / hestia_logger-1.3.1-py3-none-any.whl

Download URL hestia_logger-1.3.1-py3-none-any.whl
Size 26.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
431b97c5947c7b40e46a2ce8ed17a523efcbd500ff1323327267fdf1f35ae8ae
BLAKE2b-256 checksum
How to use checksums
afa43ba36e844096010bb6d95b9e01bc7f07a3a66e696cbdcaacf3ae2fff16ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 7, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.3.1 This release

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.1.0

2 release files

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