Skip to main content

hexastack-logging

hexastack-logging

Structured logging, security sanitization, and adapter integrations (Loguru, Rich, Structlog) for Hexastack.

PyPI: hexastack-logging Python 3.13+ Coverage License: Apache 2.0

1. Overview & Capabilities

hexastack-logging provides high-performance, structured telemetry across the entire Hexastack lifecycle:

  • Multiple Backend Adapters: Native implementations for Loguru, Rich, Structlog, SentryErrorAdapter (Sentry SDK integration), and standard library structured logging.
  • Security & PII Sanitization: Automatic masking of sensitive fields (passwords, tokens, authorization headers, credit cards).
  • Formatters: JSON formatting for cloud aggregators (Datadog, CloudWatch) and colored console formatting for local development.
  • Context & Correlation Integration: Injects active correlation_id from async context into all log outputs.
  • Log Filtering & Levels: Fine-grained level filtering and module-based log routing.

2. Package Anatomy & Key Components

hexastack_logging/
├── domain/          # LogRecord, LogLevel, Logging exceptions
├── ports/           # LoggerPort, FormatterPort, FilterPort, SanitizerPort
├── adapters/        # LoguruAdapter, RichAdapter, StructlogAdapter, StructuredLogger, SentryErrorAdapter
└── infra/           # LoggingBootstrapper (order=10), Formatters, Sanitizers, Config

Key Exports

Category Exports
Adapters StructuredLogger, LoguruAdapter, RichAdapter, StructlogAdapter, SentryErrorAdapter
Bootstrap LoggingBootstrapper (order=10), HexastackLoggingConfig
Formatters JsonFormatter, ConsoleFormatter
Sanitization SanitizerFilter, mask_sensitive_data

3. Monorepo & Sibling Relationships

graph TD
    subgraph SiblingConsumers ["Consumers of LoggerPort"]
        CQRS["hexastack-cqrs (LoggingMiddleware)"]
        FASTAPI["hexastack-fastapi (HttpLoggingMiddleware)"]
        GRPC["hexastack-grpc (LoggingServerInterceptor)"]
        GRAPHQL["hexastack-graphql (CorrelationExtension)"]
        CORE_CTX["hexastack-core (get_correlation_id)"]
    end

    subgraph LoggingSubsystem ["hexastack-logging"]
        BOOT["LoggingBootstrapper (order=10)"]
        ADAPTERS["Adapters (Loguru / Rich / Structlog / StdLib)"]
        SAN["PII Sanitizer & JSON Formatter"]
    end

    BOOT --> ADAPTERS
    ADAPTERS --> SAN
    ADAPTERS -. reads context .-> CORE_CTX

    CQRS -. resolves from DI .-> ADAPTERS
    FASTAPI -. resolves from DI .-> ADAPTERS
    GRPC -. resolves from DI .-> ADAPTERS
    GRAPHQL -. resolves from DI .-> ADAPTERS

Explicit Dependencies (Direct)

  • hexastack-core: Abstract LoggerPort, DI container, and async context tracking.

Implied / Behavioral Relationships (DI-Mediated)

  • Dependency Provider: Binds LoggerPort into the DI container at order=10 (before CQRS order=20), ensuring telemetry is available to all subsequent bootstrappers and middlewares.
  • Correlation ID Synchronization: Automatically reads and outputs get_correlation_id() stored in hexastack_core.utils.context.

Optional Integrations (Extras)

  • [loguru]: Enables loguru>=0.7.0.
  • [rich]: Enables rich>=13.0.0 console formatting.
  • [structlog]: Enables structlog>=24.0.0.
  • [all]: Installs all optional logging backends.

4. Installation

# Standalone standard library logging
pip install hexastack-logging

# With Loguru and Rich support
pip install "hexastack-logging[loguru,rich]"

# All logging backends
pip install "hexastack-logging[all]"

# Via umbrella package
pip install hexastack

5. Configuration Reference

[hexastack.logging]
level = "INFO" # "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"
format = "json" # "json", "console"
backend = "structlog" # "standard", "loguru", "rich", "structlog"
sanitize_keys = ["password", "token", "secret", "authorization", "api_key"]

6. Quickstart Example

from hexastack_core.infra.bootstrap import bootstrap
from hexastack_core.ports.logging import LoggerPort

runtime = bootstrap(
    config_overrides={
        "logging": {
            "level": "DEBUG",
            "format": "console",
        }
    }
)

logger = runtime.container.get(LoggerPort)
logger.info("Application initialized successfully", extra={"user_count": 42})

Metadata

Release files for hexastack-logging 0.4.0

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

Source distribution (sdist)

Source distribution for hexastack-logging 0.4.0
File Size Uploaded
hexastack_logging-0.4.0.tar.gz 12.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hexastack-logging 0.4.0
File Interpreter ABI Platform
hexastack_logging-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 33.0 kB

Release files / hexastack_logging-0.4.0.tar.gz

Download URL hexastack_logging-0.4.0.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
5e150aaaa0bb65c252d010b0ccea688f1cbb6dc4cb65aa7571d15103f6ac31ee
BLAKE2b-256 checksum
How to use checksums
5b41c32a4ea2d0e8060b136cbd70586087b8df41bacd31f55dcf62b87b5c37b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hexastack_logging-0.4.0-py3-none-any.whl

Download URL hexastack_logging-0.4.0-py3-none-any.whl
Size 20.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a47b05b38c28d9abed58ff00bdcafc2f29a2db5d1da7c6d7263e94ceeb74776a
BLAKE2b-256 checksum
How to use checksums
070addfa88bcfca59aed543b3f14711b9444f52b8c9157fa5ac53263272e91e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.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