import logging from opentelemetry import trace from opentelemetry.instrumentation.logging import LoggingInstrumentor from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor resource = Resource.create({"service.name": "checkout-api"}) provider = TracerProvider(resource=resource) provider.add_span_processor(SimpleSpanProcessor(ConsoleSpanExporter())) trace.set_tracer_provider(provider) LoggingInstrumentor().instrument( set_logging_format=True, logging_format="%(levelname)s trace_id=%(otelTraceID)s span_id=%(otelSpanID)s - %(message)s", ) logger = logging.getLogger("checkout") logger.setLevel(logging.INFO) tracer = trace.get_tracer("checkout-demo") with tracer.start_as_current_span("GET /checkout"): logger.info("calculated shipping quote")