Skip to content

Commit 004e10f

Browse files
comments
1 parent 00405b6 commit 004e10f

3 files changed

Lines changed: 21 additions & 11 deletions

File tree

instrumentation/opentelemetry-instrumentation-logging/src/opentelemetry/instrumentation/logging/__init__.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161

6262
import logging # pylint: disable=import-self
6363
from os import environ
64-
from typing import Collection
64+
from typing import Collection, Optional
6565

6666
from opentelemetry._logs import get_logger_provider
6767
from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
@@ -78,7 +78,6 @@
7878
OTEL_PYTHON_LOG_LEVEL,
7979
)
8080
from opentelemetry.instrumentation.logging.handler import (
81-
_get_log_level,
8281
_setup_logging_handler,
8382
)
8483
from opentelemetry.instrumentation.logging.package import _instruments
@@ -101,6 +100,20 @@
101100
_logger = logging.getLogger(__name__)
102101

103102

103+
def _get_log_level(level_name: Optional[str]) -> Optional[int]:
104+
if level_name is None:
105+
return None
106+
result = logging.getLevelName(level_name.upper().strip())
107+
if not isinstance(result, int):
108+
_logger.warning(
109+
"Invalid log level %r for %s; defaulting to NOTSET",
110+
level_name,
111+
OTEL_PYTHON_LOG_HANDLER_LEVEL,
112+
)
113+
return logging.NOTSET
114+
return result
115+
116+
104117
class LoggingInstrumentor(BaseInstrumentor): # pylint: disable=empty-docstring
105118
__doc__ = f"""An instrumentor for stdlib logging module.
106119

instrumentation/opentelemetry-instrumentation-logging/src/opentelemetry/instrumentation/logging/handler.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,6 @@
3636
from opentelemetry.util.types import _ExtendedAttributes
3737

3838

39-
def _get_log_level(level_name: str | None) -> int | None:
40-
if level_name is None:
41-
return None
42-
result = logging.getLevelName(level_name.upper().strip())
43-
return result if isinstance(result, int) else logging.NOTSET
44-
45-
4639
def _setup_logging_handler(
4740
logger_provider: LoggerProvider,
4841
log_code_attributes: bool = False,

instrumentation/opentelemetry-instrumentation-logging/tests/test_handler.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
from opentelemetry._logs import NoOpLoggerProvider, SeverityNumber
2121
from opentelemetry._logs import get_logger as APIGetLogger
2222
from opentelemetry.attributes import BoundedAttributes
23+
from opentelemetry.instrumentation.logging import _get_log_level
2324
from opentelemetry.instrumentation.logging.handler import (
2425
LoggingHandler,
25-
_get_log_level,
2626
_setup_logging_handler,
2727
)
2828
from opentelemetry.sdk import trace
@@ -709,7 +709,11 @@ def test_get_log_level_error(self):
709709
self.assertEqual(_get_log_level(" eRroR"), logging.ERROR)
710710

711711
def test_get_log_level_invalid_falls_back_to_notset(self):
712-
self.assertEqual(_get_log_level("foobar"), logging.NOTSET)
712+
with self.assertLogs(
713+
"opentelemetry.instrumentation.logging", level="WARNING"
714+
) as cm:
715+
self.assertEqual(_get_log_level("foobar"), logging.NOTSET)
716+
self.assertTrue(any("foobar" in line for line in cm.output))
713717

714718

715719
def set_up_test_logging(

0 commit comments

Comments
 (0)