elven-logs-interceptor-python 0.1.12__tar.gz → 0.1.13__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/PKG-INFO +1 -1
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/pyproject.toml +1 -1
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/interceptors/runtime_interceptor.py +4 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/integrations/logging_handler.py +4 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/.gitignore +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/ARCHITECTURE.md +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/README.md +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/application/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/application/config_service.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/application/log_service.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/config.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/domain/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/domain/entities.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/domain/interfaces.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/domain/value_objects.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/buffer/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/buffer/memory_buffer.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/circuit_breaker/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/circuit_breaker/circuit_breaker.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/compression/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/compression/base.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/compression/brotli_compressor.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/compression/factory.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/compression/gzip_compressor.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/compression/noop_compressor.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/context/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/context/context_provider.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/dlq/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/dlq/file_dlq.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/dlq/memory_dlq.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/filter/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/filter/log_filter.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/interceptors/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/internal_capture_guard.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/log_noise_filter.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/log_record_extra.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/memory/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/memory/memory_tracker.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/metrics/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/metrics/metrics_collector.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/transport/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/transport/loki_json_transport.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/transport/loki_protobuf_transport.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/transport/otlp_json_transport.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/transport/resilient_transport.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/transport/transport_factory.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/workers/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/infrastructure/workers/worker_pool.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/integrations/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/integrations/celery.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/integrations/django.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/integrations/fastapi.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/integrations/flask.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/integrations/loguru.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/integrations/structlog.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/preload.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/presentation/__init__.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/presentation/factory.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/types.py +0 -0
- {elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/src/logs_interceptor/utils.py +0 -0
{elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/pyproject.toml
RENAMED
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "elven-logs-interceptor-python"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.13"
|
|
8
8
|
description = "Production-grade logs interceptor for Python with Loki transport, resilience, batching, and framework integrations."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -14,6 +14,8 @@ from ..internal_capture_guard import is_internal_log_capture_suppressed
|
|
|
14
14
|
from ..log_noise_filter import normalize_excluded_logger_prefixes, should_drop_log_record
|
|
15
15
|
from ..log_record_extra import extract_log_record_extra
|
|
16
16
|
|
|
17
|
+
_LOG_RECORD_CAPTURED_ATTR = "_elven_uo_captured"
|
|
18
|
+
|
|
17
19
|
|
|
18
20
|
class _BridgeLoggingHandler(logging.Handler):
|
|
19
21
|
def __init__(self, logger: ILogger, exclude_prefixes: list[str] | None = None) -> None:
|
|
@@ -23,6 +25,8 @@ class _BridgeLoggingHandler(logging.Handler):
|
|
|
23
25
|
|
|
24
26
|
def emit(self, record: logging.LogRecord) -> None:
|
|
25
27
|
try:
|
|
28
|
+
if getattr(record, _LOG_RECORD_CAPTURED_ATTR, False):
|
|
29
|
+
return
|
|
26
30
|
if is_internal_log_capture_suppressed():
|
|
27
31
|
return
|
|
28
32
|
if should_drop_log_record(
|
|
@@ -13,6 +13,8 @@ from ..infrastructure.log_noise_filter import (
|
|
|
13
13
|
from ..infrastructure.log_record_extra import extract_log_record_extra
|
|
14
14
|
from ..types import LogLevel
|
|
15
15
|
|
|
16
|
+
_LOG_RECORD_CAPTURED_ATTR = "_elven_uo_captured"
|
|
17
|
+
|
|
16
18
|
|
|
17
19
|
class LoggingHandler(logging.Handler):
|
|
18
20
|
def __init__(self, logger: ILogger, exclude_prefixes: list[str] | None = None) -> None:
|
|
@@ -22,6 +24,8 @@ class LoggingHandler(logging.Handler):
|
|
|
22
24
|
|
|
23
25
|
def emit(self, record: logging.LogRecord) -> None:
|
|
24
26
|
try:
|
|
27
|
+
if getattr(record, _LOG_RECORD_CAPTURED_ATTR, False):
|
|
28
|
+
return
|
|
25
29
|
if is_internal_log_capture_suppressed():
|
|
26
30
|
return
|
|
27
31
|
if should_drop_log_record(
|
|
File without changes
|
{elven_logs_interceptor_python-0.1.12 → elven_logs_interceptor_python-0.1.13}/ARCHITECTURE.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|