@@ -88,9 +88,9 @@ class LogLimits:
8888 UNSET = - 1
8989
9090 def __init__ (
91- self ,
92- max_attributes : Optional [int ] = None ,
93- max_attribute_length : Optional [int ] = None ,
91+ self ,
92+ max_attributes : Optional [int ] = None ,
93+ max_attribute_length : Optional [int ] = None ,
9494 ):
9595
9696 # attribute count
@@ -114,7 +114,7 @@ def __repr__(self):
114114
115115 @classmethod
116116 def _from_env_if_absent (
117- cls , value : Optional [int ], env_var : str , default : Optional [int ] = None
117+ cls , value : Optional [int ], env_var : str , default : Optional [int ] = None
118118 ) -> Optional [int ]:
119119 if value == cls .UNSET :
120120 return None
@@ -156,18 +156,18 @@ class LogRecord(APILogRecord):
156156 """
157157
158158 def __init__ (
159- self ,
160- timestamp : Optional [int ] = None ,
161- observed_timestamp : Optional [int ] = None ,
162- trace_id : Optional [int ] = None ,
163- span_id : Optional [int ] = None ,
164- trace_flags : Optional [TraceFlags ] = None ,
165- severity_text : Optional [str ] = None ,
166- severity_number : Optional [SeverityNumber ] = None ,
167- body : Optional [Any ] = None ,
168- resource : Optional [Resource ] = None ,
169- attributes : Optional [Attributes ] = None ,
170- limits : Optional [LogLimits ] = _UnsetLogLimits ,
159+ self ,
160+ timestamp : Optional [int ] = None ,
161+ observed_timestamp : Optional [int ] = None ,
162+ trace_id : Optional [int ] = None ,
163+ span_id : Optional [int ] = None ,
164+ trace_flags : Optional [TraceFlags ] = None ,
165+ severity_text : Optional [str ] = None ,
166+ severity_number : Optional [SeverityNumber ] = None ,
167+ body : Optional [Any ] = None ,
168+ resource : Optional [Resource ] = None ,
169+ attributes : Optional [Attributes ] = None ,
170+ limits : Optional [LogLimits ] = _UnsetLogLimits ,
171171 ):
172172 super ().__init__ (
173173 ** {
@@ -229,9 +229,9 @@ class LogData:
229229 """Readable LogRecord data plus associated InstrumentationLibrary."""
230230
231231 def __init__ (
232- self ,
233- log_record : LogRecord ,
234- instrumentation_scope : InstrumentationScope ,
232+ self ,
233+ log_record : LogRecord ,
234+ instrumentation_scope : InstrumentationScope ,
235235 ):
236236 self .log_record = log_record
237237 self .instrumentation_scope = instrumentation_scope
@@ -284,7 +284,7 @@ def __init__(self):
284284 self ._lock = threading .Lock ()
285285
286286 def add_log_record_processor (
287- self , log_record_processor : LogRecordProcessor
287+ self , log_record_processor : LogRecordProcessor
288288 ) -> None :
289289 """Adds a Logprocessor to the list of log processors handled by this instance"""
290290 with self ._lock :
@@ -346,16 +346,16 @@ def __init__(self, max_workers: int = 2):
346346 )
347347
348348 def add_log_record_processor (
349- self , log_record_processor : LogRecordProcessor
349+ self , log_record_processor : LogRecordProcessor
350350 ):
351351 with self ._lock :
352352 self ._log_record_processors += (log_record_processor ,)
353353
354354 def _submit_and_wait (
355- self ,
356- func : Callable [[LogRecordProcessor ], Callable [..., None ]],
357- * args : Any ,
358- ** kwargs : Any ,
355+ self ,
356+ func : Callable [[LogRecordProcessor ], Callable [..., None ]],
357+ * args : Any ,
358+ ** kwargs : Any ,
359359 ):
360360 futures = []
361361 for lp in self ._log_record_processors :
@@ -437,9 +437,9 @@ class LoggingHandler(logging.Handler):
437437 """
438438
439439 def __init__ (
440- self ,
441- level = logging .NOTSET ,
442- logger_provider = None ,
440+ self ,
441+ level = logging .NOTSET ,
442+ logger_provider = None ,
443443 ) -> None :
444444 super ().__init__ (level = level )
445445 self ._logger_provider = logger_provider or get_logger_provider ()
@@ -476,14 +476,18 @@ def _translate(self, record: logging.LogRecord) -> LogRecord:
476476 span_context = get_current_span ().get_span_context ()
477477 attributes = self ._get_attributes (record )
478478 severity_number = std_to_otel (record .levelno )
479+ if isinstance (record .msg , str ) and record .args :
480+ body = record .msg % record .args
481+ else :
482+ body = record .msg
479483 return LogRecord (
480484 timestamp = timestamp ,
481485 trace_id = span_context .trace_id ,
482486 span_id = span_context .span_id ,
483487 trace_flags = span_context .trace_flags ,
484488 severity_text = record .levelname ,
485489 severity_number = severity_number ,
486- body = record . msg ,
490+ body = body ,
487491 resource = self ._logger .resource ,
488492 attributes = attributes ,
489493 )
@@ -505,13 +509,13 @@ def flush(self) -> None:
505509
506510class Logger (APILogger ):
507511 def __init__ (
508- self ,
509- resource : Resource ,
510- multi_log_record_processor : Union [
511- SynchronousMultiLogRecordProcessor ,
512- ConcurrentMultiLogRecordProcessor ,
513- ],
514- instrumentation_scope : InstrumentationScope ,
512+ self ,
513+ resource : Resource ,
514+ multi_log_record_processor : Union [
515+ SynchronousMultiLogRecordProcessor ,
516+ ConcurrentMultiLogRecordProcessor ,
517+ ],
518+ instrumentation_scope : InstrumentationScope ,
515519 ):
516520 super ().__init__ (
517521 instrumentation_scope .name ,
@@ -536,17 +540,17 @@ def emit(self, record: LogRecord):
536540
537541class LoggerProvider (APILoggerProvider ):
538542 def __init__ (
539- self ,
540- resource : Resource = Resource .create (),
541- shutdown_on_exit : bool = True ,
542- multi_log_record_processor : Union [
543- SynchronousMultiLogRecordProcessor ,
544- ConcurrentMultiLogRecordProcessor ,
545- ] = None ,
543+ self ,
544+ resource : Resource = Resource .create (),
545+ shutdown_on_exit : bool = True ,
546+ multi_log_record_processor : Union [
547+ SynchronousMultiLogRecordProcessor ,
548+ ConcurrentMultiLogRecordProcessor ,
549+ ] = None ,
546550 ):
547551 self ._resource = resource
548552 self ._multi_log_record_processor = (
549- multi_log_record_processor or SynchronousMultiLogRecordProcessor ()
553+ multi_log_record_processor or SynchronousMultiLogRecordProcessor ()
550554 )
551555 self ._at_exit_handler = None
552556 if shutdown_on_exit :
@@ -557,10 +561,10 @@ def resource(self):
557561 return self ._resource
558562
559563 def get_logger (
560- self ,
561- name : str ,
562- version : Optional [str ] = None ,
563- schema_url : Optional [str ] = None ,
564+ self ,
565+ name : str ,
566+ version : Optional [str ] = None ,
567+ schema_url : Optional [str ] = None ,
564568 ) -> Logger :
565569 return Logger (
566570 self ._resource ,
@@ -573,7 +577,7 @@ def get_logger(
573577 )
574578
575579 def add_log_record_processor (
576- self , log_record_processor : LogRecordProcessor
580+ self , log_record_processor : LogRecordProcessor
577581 ):
578582 """Registers a new :class:`LogRecordProcessor` for this `LoggerProvider` instance.
579583
0 commit comments