HESTIA Logger
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 (
INFOin green,ERRORin 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)
| File | Size | Uploaded | |
|---|---|---|---|
| hestia_logger-1.3.1.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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