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.5.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.5.0
File Size Uploaded
hexastack_logging-0.5.0.tar.gz 12.1 kB Details

Built distribution (wheel)

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

Total release size: 33.0 kB

Release files / hexastack_logging-0.5.0.tar.gz

Download URL hexastack_logging-0.5.0.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c9af75bcaefc9256ba8e833b2ce539744d0c5f49e98110f727b27682f86aae18
BLAKE2b-256 checksum
How to use checksums
f8855665e439acf357bb0f72d1cad6642662a9ecb09aa6f77cb9329b120925ca
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.5.0-py3-none-any.whl

Download URL hexastack_logging-0.5.0-py3-none-any.whl
Size 20.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3f7c60e1190c7c3404206287289e7b7eeca54831fc811d104662aeaccb00b0ef
BLAKE2b-256 checksum
How to use checksums
66daf94d09aea3992f33e4c61d850e02829709090eed7668434fb9c22ce1c42a
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

This release

0.5.0 This release

2 release files

0.4.0

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