Skip to content

Commit 3180964

Browse files
authored
Merge branch 'main' into main
2 parents 6ed248f + 6631e89 commit 3180964

File tree

4 files changed

+33
-3
lines changed

4 files changed

+33
-3
lines changed

opentelemetry-api/src/opentelemetry/_logs/_internal/__init__.py

+18-2
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,13 @@ def __init__(
9090
name: str,
9191
version: Optional[str] = None,
9292
schema_url: Optional[str] = None,
93+
attributes: Optional[Attributes] = None,
9394
) -> None:
9495
super().__init__()
9596
self._name = name
9697
self._version = version
9798
self._schema_url = schema_url
99+
self._attributes = attributes
98100

99101
@abstractmethod
100102
def emit(self, record: "LogRecord") -> None:
@@ -117,10 +119,12 @@ def __init__( # pylint: disable=super-init-not-called
117119
name: str,
118120
version: Optional[str] = None,
119121
schema_url: Optional[str] = None,
122+
attributes: Optional[Attributes] = None,
120123
):
121124
self._name = name
122125
self._version = version
123126
self._schema_url = schema_url
127+
self._attributes = attributes
124128
self._real_logger: Optional[Logger] = None
125129
self._noop_logger = NoOpLogger(name)
126130

@@ -134,6 +138,7 @@ def _logger(self) -> Logger:
134138
self._name,
135139
self._version,
136140
self._schema_url,
141+
self._attributes,
137142
)
138143
return self._real_logger
139144
return self._noop_logger
@@ -153,6 +158,7 @@ def get_logger(
153158
name: str,
154159
version: Optional[str] = None,
155160
schema_url: Optional[str] = None,
161+
attributes: Optional[Attributes] = None,
156162
) -> Logger:
157163
"""Returns a `Logger` for use by the given instrumentation library.
158164
@@ -190,9 +196,12 @@ def get_logger(
190196
name: str,
191197
version: Optional[str] = None,
192198
schema_url: Optional[str] = None,
199+
attributes: Optional[Attributes] = None,
193200
) -> Logger:
194201
"""Returns a NoOpLogger."""
195-
return NoOpLogger(name, version=version, schema_url=schema_url)
202+
return NoOpLogger(
203+
name, version=version, schema_url=schema_url, attributes=attributes
204+
)
196205

197206

198207
class ProxyLoggerProvider(LoggerProvider):
@@ -201,17 +210,20 @@ def get_logger(
201210
name: str,
202211
version: Optional[str] = None,
203212
schema_url: Optional[str] = None,
213+
attributes: Optional[Attributes] = None,
204214
) -> Logger:
205215
if _LOGGER_PROVIDER:
206216
return _LOGGER_PROVIDER.get_logger(
207217
name,
208218
version=version,
209219
schema_url=schema_url,
220+
attributes=attributes,
210221
)
211222
return ProxyLogger(
212223
name,
213224
version=version,
214225
schema_url=schema_url,
226+
attributes=attributes,
215227
)
216228

217229

@@ -261,6 +273,7 @@ def get_logger(
261273
instrumenting_library_version: str = "",
262274
logger_provider: Optional[LoggerProvider] = None,
263275
schema_url: Optional[str] = None,
276+
attributes: Optional[Attributes] = None,
264277
) -> "Logger":
265278
"""Returns a `Logger` for use within a python process.
266279
@@ -272,5 +285,8 @@ def get_logger(
272285
if logger_provider is None:
273286
logger_provider = get_logger_provider()
274287
return logger_provider.get_logger(
275-
instrumenting_module_name, instrumenting_library_version, schema_url
288+
instrumenting_module_name,
289+
instrumenting_library_version,
290+
schema_url,
291+
attributes,
276292
)

opentelemetry-api/tests/logs/test_proxy.py

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import opentelemetry._logs._internal as _logs_internal
2020
from opentelemetry import _logs
2121
from opentelemetry.test.globals_test import LoggingGlobalsTest
22+
from opentelemetry.util.types import Attributes
2223

2324

2425
class TestProvider(_logs.NoOpLoggerProvider):
@@ -27,6 +28,7 @@ def get_logger(
2728
name: str,
2829
version: typing.Optional[str] = None,
2930
schema_url: typing.Optional[str] = None,
31+
attributes: typing.Optional[Attributes] = None,
3032
) -> _logs.Logger:
3133
return LoggerTest(name)
3234

opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,7 @@ def __init__(
560560
instrumentation_scope.name,
561561
instrumentation_scope.version,
562562
instrumentation_scope.schema_url,
563+
instrumentation_scope.attributes,
563564
)
564565
self._resource = resource
565566
self._multi_log_record_processor = multi_log_record_processor
@@ -609,17 +610,24 @@ def get_logger(
609610
name: str,
610611
version: Optional[str] = None,
611612
schema_url: Optional[str] = None,
613+
attributes: Optional[Attributes] = None,
612614
) -> Logger:
613615
if self._disabled:
614616
_logger.warning("SDK is disabled.")
615-
return NoOpLogger(name, version=version, schema_url=schema_url)
617+
return NoOpLogger(
618+
name,
619+
version=version,
620+
schema_url=schema_url,
621+
attributes=attributes,
622+
)
616623
return Logger(
617624
self._resource,
618625
self._multi_log_record_processor,
619626
InstrumentationScope(
620627
name,
621628
version,
622629
schema_url,
630+
attributes,
623631
),
624632
)
625633

opentelemetry-sdk/tests/logs/test_logs.py

+4
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,17 @@ def test_get_logger(self):
5555
"name",
5656
version="version",
5757
schema_url="schema_url",
58+
attributes={"key": "value"},
5859
)
5960

6061
self.assertEqual(logger._instrumentation_scope.name, "name")
6162
self.assertEqual(logger._instrumentation_scope.version, "version")
6263
self.assertEqual(
6364
logger._instrumentation_scope.schema_url, "schema_url"
6465
)
66+
self.assertEqual(
67+
logger._instrumentation_scope.attributes, {"key": "value"}
68+
)
6569

6670
@patch.dict("os.environ", {OTEL_SDK_DISABLED: "true"})
6771
def test_get_logger_with_sdk_disabled(self):

0 commit comments

Comments
 (0)