22
33import functools
44from typing import Callable
5+ import logging
56
67from . import BaseTransportMiddleware
78
1819from opentelemetry .exporter .otlp .proto .http .trace_exporter \
1920 import OTLPSpanExporter
2021
22+ logger = logging .getLogger (__name__ )
2123
2224class TracerMiddleware (BaseTransportMiddleware ):
2325 def __init__ (self , service_name : str ):
@@ -39,27 +41,31 @@ def _initiate_tracers(self, service_name):
3941 # A tracer provides traces:
4042 trace .set_tracer_provider (provider )
4143 self .tracer = trace .get_tracer (__name__ )
44+ logger .info (f"initialized tracer as { service_name } " )
4245
4346 def _extract_trace_context (self , message ):
4447 """Retrieves Context object from message."""
4548 carrier = message .get ('trace_context' )
4649 if carrier :
4750 # Deserialise serialised context into a Context object:
4851 ctx = TraceContextTextMapPropagator ().extract (carrier = carrier )
52+ logger .info (f"extracted trace context from { self .service_name } " )
4953 return ctx
5054 # If no context, leave empty:
55+ logger .warning (f"no context found for { self .service_name } , could not extract" )
5156 return {}
5257
5358 def _inject_trace_context (self , message ):
5459 """Inserts serialized trace context into message."""
5560 if type (message ) == str :
56- print ( "Warning: string message received " )
61+ logger . warning ( f"received string message in { self . service_name } , could not extract trace context " )
5762 return
5863 carrier = {}
5964 # If called outside of a span context, just leave carrier empty
6065 # (very safe!)
6166 TraceContextTextMapPropagator ().inject (carrier )
6267 message ['trace_context' ] = carrier
68+ logger .info (f"injected trace context into { self .service_name } " )
6369
6470 def subscribe (self , call_next : Callable , channel , callback , ** kwargs ) -> int :
6571 """The callback includes 'everything' that happens in a service that
0 commit comments