diff --git a/packages/opal-common/opal_common/logger.py b/packages/opal-common/opal_common/logger.py index be847b43..5f1229a8 100644 --- a/packages/opal-common/opal_common/logger.py +++ b/packages/opal-common/opal_common/logger.py @@ -8,11 +8,14 @@ from .logging.formatter import Formatter from .logging.intercept import InterceptHandler from .logging.thirdparty import hijack_uvicorn_logs +from .monitoring.apm import fix_ddtrace_logging def configure_logs(): """Takeover process logs and create a logger with Loguru according to the configuration.""" + fix_ddtrace_logging() + intercept_handler = InterceptHandler() formatter = Formatter(opal_common_config.LOG_FORMAT) filter = ModuleFilter( @@ -20,6 +23,7 @@ def configure_logs(): exclude_list=opal_common_config.LOG_MODULE_EXCLUDE_LIST, ) logging.basicConfig(handlers=[intercept_handler], level=0, force=True) + if opal_common_config.LOG_PATCH_UVICORN_LOGS: # Monkey patch UVICORN to use our logger hijack_uvicorn_logs(intercept_handler) diff --git a/packages/opal-common/opal_common/monitoring/apm.py b/packages/opal-common/opal_common/monitoring/apm.py index 9712244e..ff73c7c6 100644 --- a/packages/opal-common/opal_common/monitoring/apm.py +++ b/packages/opal-common/opal_common/monitoring/apm.py @@ -1,3 +1,4 @@ +import logging import os from typing import Optional from urllib.parse import urlparse @@ -11,6 +12,7 @@ def configure_apm(enable_apm: bool, service_name: str): """optionally enable datadog APM / profiler.""" if enable_apm: logger.info("Enabling DataDog APM") + # logging.getLogger("ddtrace").propagate = False class FilterRootPathTraces(TraceFilter): def process_trace(self, trace: list[Span]) -> Optional[list[Span]]: @@ -48,3 +50,11 @@ def process_trace(self, trace: list[Span]) -> Optional[list[Span]]: else: logger.info("DataDog APM disabled") tracer.configure(enabled=False) + + +def fix_ddtrace_logging(): + logging.getLogger("ddtrace").setLevel(logging.WARNING) + + ddtrace_logger = logging.getLogger("ddtrace") + for handler in ddtrace_logger.handlers: + ddtrace_logger.removeHandler(handler)