@@ -60,23 +60,18 @@ async def lifespan(app: FastAPI):
6060 "No Application Insights Instrumentation Key found. Skipping configuration"
6161 )
6262
63- # Configure logging
64- logging .basicConfig (level = logging .INFO )
65-
66- # Suppress INFO logs from 'azure.core.pipeline.policies.http_logging_policy'
67- logging .getLogger ("azure.core.pipeline.policies.http_logging_policy" ).setLevel (
68- logging .WARNING
69- )
70- logging .getLogger ("azure.identity.aio._internal" ).setLevel (logging .WARNING )
71-
72- # # Suppress info logs from OpenTelemetry exporter
73- logging .getLogger ("azure.monitor.opentelemetry.exporter.export._base" ).setLevel (
74- logging .WARNING
75- )
76-
77- logging .getLogger ("opentelemetry.sdk" ).setLevel (
78- logging .ERROR
79- )
63+ # Configure logging levels from environment variables
64+ logging .basicConfig (level = getattr (logging , config .AZURE_BASIC_LOGGING_LEVEL .upper (), logging .INFO ))
65+
66+ # Configure Azure package logging levels
67+ azure_level = getattr (logging , config .AZURE_PACKAGE_LOGGING_LEVEL .upper (), logging .WARNING )
68+ # Parse comma-separated logging packages
69+ if config .AZURE_LOGGING_PACKAGES :
70+ packages = [pkg .strip () for pkg in config .AZURE_LOGGING_PACKAGES .split ("," ) if pkg .strip ()]
71+ for logger_name in packages :
72+ logging .getLogger (logger_name ).setLevel (azure_level )
73+
74+ logging .getLogger ("opentelemetry.sdk" ).setLevel (logging .ERROR )
8075
8176# Initialize the FastAPI app
8277app = FastAPI (lifespan = lifespan )
0 commit comments