Skip to content

Commit 8a0ce15

Browse files
authored
Update logging to include logging api as per specification (#3038)
1 parent 501bfa5 commit 8a0ce15

File tree

25 files changed

+510
-223
lines changed

25 files changed

+510
-223
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111
([#3026](https://github.com/open-telemetry/opentelemetry-python/pull/3026))
1212
- Add missing entry points for OTLP/HTTP exporter
1313
([#3027](https://github.com/open-telemetry/opentelemetry-python/pull/3027))
14+
- Update logging to include logging api as per specification
15+
([#3038](https://github.com/open-telemetry/opentelemetry-python/pull/3038))
1416
- Fix: Avoid generator in metrics _ViewInstrumentMatch.collect()
1517
([#3035](https://github.com/open-telemetry/opentelemetry-python/pull/3035)
1618

docs/api/_logs.rst

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
opentelemetry._logs package
2+
=============================
3+
4+
Submodules
5+
----------
6+
7+
.. toctree::
8+
9+
_logs.severity
10+
11+
Module contents
12+
---------------
13+
14+
.. automodule:: opentelemetry._logs

docs/api/_logs.severity.rst

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
opentelemetry._logs.severity
2+
============================
3+
4+
.. automodule:: opentelemetry._logs.severity

docs/api/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ OpenTelemetry Python API
66
.. toctree::
77
:maxdepth: 1
88

9+
_logs
910
baggage
1011
context
1112
propagate

docs/sdk/_logs.rst

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
opentelemetry.sdk._logs package
2+
===============================
3+
4+
.. automodule:: opentelemetry.sdk._logs
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:

docs/sdk/index.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ OpenTelemetry Python SDK
66
.. toctree::
77
:maxdepth: 1
88

9+
_logs
910
resources
1011
trace
1112
metrics
12-
logs
1313
error_handler
1414
environment_variables

docs/sdk/logs.export.rst

-7
This file was deleted.

docs/sdk/logs.rst

-22
This file was deleted.

docs/sdk/logs.severity.rst

-7
This file was deleted.

exporter/opentelemetry-exporter-otlp-proto-grpc/tests/logs/test_otlp_logs_exporter.py

+4-6
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from google.rpc.error_details_pb2 import RetryInfo
2222
from grpc import StatusCode, server
2323

24+
from opentelemetry._logs import SeverityNumber
2425
from opentelemetry.exporter.otlp.proto.grpc._log_exporter import (
2526
OTLPLogExporter,
2627
)
@@ -45,9 +46,6 @@
4546
)
4647
from opentelemetry.sdk._logs import LogData, LogRecord
4748
from opentelemetry.sdk._logs.export import LogExportResult
48-
from opentelemetry.sdk._logs.severity import (
49-
SeverityNumber as SDKSeverityNumber,
50-
)
5149
from opentelemetry.sdk.resources import Resource as SDKResource
5250
from opentelemetry.sdk.util.instrumentation import InstrumentationScope
5351
from opentelemetry.trace import TraceFlags
@@ -117,7 +115,7 @@ def setUp(self):
117115
span_id=5213367945872657620,
118116
trace_flags=TraceFlags(0x01),
119117
severity_text="WARNING",
120-
severity_number=SDKSeverityNumber.WARN,
118+
severity_number=SeverityNumber.WARN,
121119
body="Zhengzhou, We have a heaviest rains in 1000 years",
122120
resource=SDKResource({"key": "value"}),
123121
attributes={"a": 1, "b": "c"},
@@ -133,7 +131,7 @@ def setUp(self):
133131
span_id=5213367945872657623,
134132
trace_flags=TraceFlags(0x01),
135133
severity_text="INFO",
136-
severity_number=SDKSeverityNumber.INFO2,
134+
severity_number=SeverityNumber.INFO2,
137135
body="Sydney, Opera House is closed",
138136
resource=SDKResource({"key": "value"}),
139137
attributes={"custom_attr": [1, 2, 3]},
@@ -149,7 +147,7 @@ def setUp(self):
149147
span_id=5213367945872657628,
150148
trace_flags=TraceFlags(0x01),
151149
severity_text="ERROR",
152-
severity_number=SDKSeverityNumber.WARN,
150+
severity_number=SeverityNumber.WARN,
153151
body="Mumbai, Boil water before drinking",
154152
resource=SDKResource({"service": "myapp"}),
155153
),

exporter/opentelemetry-exporter-otlp-proto-http/tests/test_proto_log_exporter.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import requests
2222
import responses
2323

24+
from opentelemetry._logs import SeverityNumber
2425
from opentelemetry.exporter.otlp.proto.http import Compression
2526
from opentelemetry.exporter.otlp.proto.http._log_exporter import (
2627
DEFAULT_COMPRESSION,
@@ -54,7 +55,6 @@
5455
)
5556
from opentelemetry.sdk._logs import LogData
5657
from opentelemetry.sdk._logs import LogRecord as SDKLogRecord
57-
from opentelemetry.sdk._logs.severity import SeverityNumber
5858
from opentelemetry.sdk.environment_variables import (
5959
OTEL_EXPORTER_OTLP_CERTIFICATE,
6060
OTEL_EXPORTER_OTLP_COMPRESSION,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Copyright The OpenTelemetry Authors
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
"""
15+
The OpenTelemetry logging API describes the classes used to generate logs and events.
16+
17+
The :class:`.LoggerProvider` provides users access to the :class:`.Logger` which in
18+
turn is used to create :class:`.Event` and :class:`.Log` objects.
19+
20+
This module provides abstract (i.e. unimplemented) classes required for
21+
logging, and a concrete no-op implementation :class:`.NoOpLogger` that allows applications
22+
to use the API package alone without a supporting implementation.
23+
24+
To get a logger, you need to provide the package name from which you are
25+
calling the logging APIs to OpenTelemetry by calling `LoggerProvider.get_logger`
26+
with the calling module name and the version of your package.
27+
28+
The following code shows how to obtain a logger using the global :class:`.LoggerProvider`::
29+
30+
from opentelemetry._logs import get_logger
31+
32+
logger = get_logger("example-logger")
33+
34+
.. versionadded:: 1.15.0
35+
"""
36+
37+
# pylint: disable=unused-import
38+
39+
from opentelemetry._logs._internal import ( # noqa: F401
40+
Logger,
41+
LoggerProvider,
42+
LogRecord,
43+
NoOpLogger,
44+
NoOpLoggerProvider,
45+
get_logger,
46+
get_logger_provider,
47+
set_logger_provider,
48+
)
49+
from opentelemetry._logs.severity import ( # noqa: F401
50+
SeverityNumber,
51+
std_to_otel,
52+
)
53+
54+
__all__ = []
55+
for key, value in globals().copy().items(): # type: ignore
56+
if not key.startswith("_"):
57+
value.__module__ = __name__ # type: ignore
58+
__all__.append(key)

0 commit comments

Comments
 (0)