Skip to content

Commit 8ba2d22

Browse files
committed
Reinstate the old code
1 parent b33ec99 commit 8ba2d22

1 file changed

Lines changed: 45 additions & 2 deletions

File tree

  • opentelemetry-sdk/src/opentelemetry/sdk/_configuration

opentelemetry-sdk/src/opentelemetry/sdk/_configuration/__init__.py

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,15 @@
3939
from opentelemetry.metrics import set_meter_provider
4040
from opentelemetry.sdk._logs import (
4141
LoggerProvider,
42+
LoggingHandler,
4243
LogRecordProcessor,
4344
)
4445
from opentelemetry.sdk._logs.export import (
4546
BatchLogRecordProcessor,
4647
LogRecordExporter,
4748
)
4849
from opentelemetry.sdk.environment_variables import (
50+
_OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED,
4951
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL,
5052
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL,
5153
OTEL_EXPORTER_OTLP_PROTOCOL,
@@ -324,9 +326,41 @@ def _init_logging(
324326
set_event_logger_provider(event_logger_provider)
325327

326328
if setup_logging_handler:
327-
_logger.warning(
328-
"Handling of logging integrations has been moved to opentelemetry-instrumentation"
329+
warnings.deprecated(
330+
"Setting the OTel Logging handler from the SDK and the `OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED` are deprecated. You should install the opentelemetry-instrumentation-logging"
331+
)
332+
333+
# Add OTel handler
334+
handler = LoggingHandler(
335+
level=logging.NOTSET, logger_provider=provider
329336
)
337+
logging.getLogger().addHandler(handler)
338+
_overwrite_logging_config_fns(handler)
339+
340+
341+
def _overwrite_logging_config_fns(handler: LoggingHandler) -> None:
342+
root = logging.getLogger()
343+
344+
def wrapper(config_fn: Callable) -> Callable:
345+
def overwritten_config_fn(*args, **kwargs):
346+
removed_handler = False
347+
# We don't want the OTLP handler to be modified or deleted by the logging config functions.
348+
# So we remove it and then add it back after the function call.
349+
if handler in root.handlers:
350+
removed_handler = True
351+
root.handlers.remove(handler)
352+
try:
353+
config_fn(*args, **kwargs)
354+
finally:
355+
# Ensure handler is added back if logging function throws exception.
356+
if removed_handler:
357+
root.addHandler(handler)
358+
359+
return overwritten_config_fn
360+
361+
logging.config.fileConfig = wrapper(logging.config.fileConfig)
362+
logging.config.dictConfig = wrapper(logging.config.dictConfig)
363+
logging.basicConfig = wrapper(logging.basicConfig)
330364

331365

332366
def _import_tracer_configurator(
@@ -519,6 +553,15 @@ def _initialize_components(
519553
_init_metrics(
520554
metric_exporters, resource, exporter_args_map=exporter_args_map
521555
)
556+
if setup_logging_handler is None:
557+
setup_logging_handler = (
558+
os.getenv(
559+
_OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED, "false"
560+
)
561+
.strip()
562+
.lower()
563+
== "true"
564+
)
522565
_init_logging(
523566
log_exporters,
524567
resource,

0 commit comments

Comments
 (0)