Respect log level env for OTLP.

This commit is contained in:
febux 2026-09-04 01:56:44 +03:00
parent 8b0a233816
commit 4b71fe4291
2 changed files with 28 additions and 1 deletions

View file

@ -113,7 +113,7 @@ def setup_telemetry(service_name: str | None = None) -> None:
_log_provider = log_provider _log_provider = log_provider
otel_log_handler = StructlogOTLPLogHandler(logger_provider=log_provider) otel_log_handler = StructlogOTLPLogHandler(logger_provider=log_provider)
otel_log_handler.setLevel(logging.INFO) otel_log_handler.setLevel(getattr(logging, settings.log_level.upper(), logging.INFO))
logging.getLogger().addHandler(otel_log_handler) logging.getLogger().addHandler(otel_log_handler)
# Metrics infrastructure (OTel metrics → OTLP). Existing prometheus_client # Metrics infrastructure (OTel metrics → OTLP). Existing prometheus_client

View file

@ -74,3 +74,30 @@ def test_structlog_logs_reach_root_handlers() -> None:
log = get_logger("test") log = get_logger("test")
log.info("smoke_test", answer=42) log.info("smoke_test", answer=42)
@pytest.mark.parametrize("level", ["DEBUG", "INFO", "WARNING"])
def test_otel_handler_respects_configured_log_level(
monkeypatch: pytest.MonkeyPatch, level: str
) -> None:
"""The OTLP handler level matches settings.log_level so DEBUG logs can reach OpenObserve."""
from contract_check.core.config import get_settings
from contract_check.core.logging import configure_logging
from contract_check.core.telemetry import setup_telemetry, shutdown_telemetry
configure_logging(level, json_output=True, service="test-service", env="test")
monkeypatch.setattr(
get_settings(), "otel_exporter_otlp_endpoint", "http://localhost:9999/v1/logs"
)
monkeypatch.setattr(get_settings(), "log_level", level)
setup_telemetry("test")
root = logging.getLogger()
try:
otel_handler = next(
h for h in root.handlers if type(h).__name__ == "StructlogOTLPLogHandler"
)
assert otel_handler.level == getattr(logging, level)
finally:
shutdown_telemetry()
root.handlers = [h for h in root.handlers if type(h).__name__ != "StructlogOTLPLogHandler"]