Skip to content

Commit 34e5865

Browse files
committed
Address PR feedback
* Catch all exceptions in _format_log_message * Import sys instead of sys.stderr * Update unit tests
1 parent eec06e2 commit 34e5865

2 files changed

Lines changed: 263 additions & 163 deletions

File tree

  • opentelemetry-instrumentation
    • src/opentelemetry/instrumentation/auto_instrumentation
    • tests/auto_instrumentation

opentelemetry-instrumentation/src/opentelemetry/instrumentation/auto_instrumentation/_load.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Copyright The OpenTelemetry Authors
22
# SPDX-License-Identifier: Apache-2.0
33

4+
import sys
45
from functools import cached_property
56
from logging import (
67
DEBUG,
@@ -11,7 +12,6 @@
1112
getLogger,
1213
)
1314
from os import environ
14-
from sys import stderr
1515

1616
from opentelemetry.instrumentation.dependencies import (
1717
DependencyConflictError,
@@ -47,6 +47,16 @@ def _format_log_arg(arg: object) -> object:
4747
return arg
4848

4949

50+
def _format_log_message(msg: str, args: tuple[object, ...]) -> str:
51+
if not args:
52+
return msg
53+
54+
try:
55+
return msg % tuple(_format_log_arg(arg) for arg in args)
56+
except Exception: # pylint: disable=broad-except
57+
return msg
58+
59+
5060
class _OtelLogLevelLoggerAdapter(LoggerAdapter):
5161
"""Write startup debug messages to stderr when logging would drop them.
5262
@@ -65,12 +75,9 @@ def debug(self, msg: str, *args: object, **kwargs: object) -> None:
6575
):
6676
return
6777

68-
message = msg
69-
if args:
70-
message = message % tuple(_format_log_arg(arg) for arg in args)
71-
72-
stderr.write(f"DEBUG:{self.logger.name}:{message}\n")
73-
stderr.flush()
78+
message = _format_log_message(msg, args)
79+
sys.stderr.write(f"DEBUG:{self.logger.name}:{message}\n")
80+
sys.stderr.flush()
7481

7582
def _logger_would_emit(self, level: int) -> bool:
7683
# If the logger itself would reject this level, don't bother walking handlers.

0 commit comments

Comments
 (0)