Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .changelog/5731.changed
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
`opentelemetry-api`: stabilize the logs API as `opentelemetry.logs`
1 change: 1 addition & 0 deletions .changelog/5731.deprecated
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
`opentelemetry-api`: deprecate `opentelemetry._logs` in favor of `opentelemetry.logs`
14 changes: 0 additions & 14 deletions docs/api/_logs.rst

This file was deleted.

4 changes: 0 additions & 4 deletions docs/api/_logs.severity.rst

This file was deleted.

2 changes: 1 addition & 1 deletion docs/api/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ For the concrete implementation of these interfaces, see the
.. toctree::
:maxdepth: 1

_logs
attributes
baggage
context
logs
propagate
propagators
trace
Expand Down
14 changes: 14 additions & 0 deletions docs/api/logs.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
opentelemetry.logs package
==========================

Submodules
----------

.. toctree::

logs.severity

Module contents
---------------

.. automodule:: opentelemetry.logs
4 changes: 4 additions & 0 deletions docs/api/logs.severity.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
opentelemetry.logs.severity
===========================

.. automodule:: opentelemetry.logs.severity
2 changes: 1 addition & 1 deletion docs/examples/logs/example.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
import logging

from opentelemetry import trace
from opentelemetry._logs import set_logger_provider
from opentelemetry.exporter.otlp.proto.grpc._log_exporter import (
OTLPLogExporter,
)

# this is available in the opentelemetry-instrumentation-logging package
from opentelemetry.instrumentation.logging.handler import LoggingHandler
from opentelemetry.logs import set_logger_provider
from opentelemetry.sdk._logs import LoggerProvider
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
from opentelemetry.sdk.resources import Resource
Expand Down
6 changes: 3 additions & 3 deletions docs/examples/metrics/sdk-metrics/sdk_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import os
import time

from opentelemetry import _logs, metrics, trace
from opentelemetry import logs, metrics, trace
from opentelemetry.exporter.otlp.proto.http._log_exporter import (
OTLPLogExporter,
)
Expand Down Expand Up @@ -60,10 +60,10 @@
meter_provider=meter_provider,
)
)
_logs.set_logger_provider(logger_provider)
logs.set_logger_provider(logger_provider)

tracer = trace.get_tracer(__name__)
logger = _logs.get_logger(__name__)
logger = logs.get_logger(__name__)

with tracer.start_as_current_span("example-span"):
logger.emit(body="example log record")
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/multi-destination-exporting/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,6 @@ Useful links
- OpenTelemetry_
- :doc:`../../api/trace`
- :doc:`../../api/metrics`
- :doc:`../../api/_logs`
- :doc:`../../api/logs`

.. _OpenTelemetry: https://github.com/open-telemetry/opentelemetry-python/
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

import logging

from opentelemetry._logs import set_logger_provider
from opentelemetry.exporter.otlp.proto.grpc._log_exporter import (
OTLPLogExporter as GrpcLogExporter,
)
Expand All @@ -19,6 +18,7 @@

# this is available in the opentelemetry-instrumentation-logging package
from opentelemetry.instrumentation.logging.handler import LoggingHandler
from opentelemetry.logs import set_logger_provider
from opentelemetry.sdk._logs import LoggerProvider
from opentelemetry.sdk._logs.export import (
BatchLogRecordProcessor,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

import pytest

from opentelemetry._logs import SeverityNumber
from opentelemetry.exporter.otlp.json.common._log_encoder import encode_logs
from opentelemetry.logs import SeverityNumber
from tests import TIME, make_log, make_log_context


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import dataclasses
import unittest

from opentelemetry._logs import LogRecord, SeverityNumber
from opentelemetry.logs import LogRecord, SeverityNumber
from opentelemetry.sdk._logs import ReadableLogRecord
from opentelemetry.sdk.metrics.export import (
AggregationTemporality,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@

import unittest

from opentelemetry._logs import LogRecord, SeverityNumber
from opentelemetry.exporter.otlp.proto.common._internal import (
_encode_attributes,
_encode_span_id,
_encode_trace_id,
_encode_value,
)
from opentelemetry.exporter.otlp.proto.common._log_encoder import encode_logs
from opentelemetry.logs import LogRecord, SeverityNumber
from opentelemetry.proto.collector.logs.v1.logs_service_pb2 import (
ExportLogsServiceRequest,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@

from google.protobuf.json_format import MessageToDict, ParseDict

from opentelemetry._logs import SeverityNumber
from opentelemetry.exporter.otlp.json.common._log_encoder import (
encode_logs as json_encode_logs,
)
Expand All @@ -36,6 +35,7 @@
from opentelemetry.exporter.otlp.proto.common.trace_encoder import (
encode_spans as proto_encode_spans,
)
from opentelemetry.logs import SeverityNumber
from opentelemetry.proto.collector.logs.v1.logs_service_pb2 import (
ExportLogsServiceRequest as PB2ExportLogsServiceRequest,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
import unittest
from unittest.mock import Mock

from opentelemetry._logs import LogRecord, SeverityNumber
from opentelemetry.exporter.otlp.json.common._log_encoder import encode_logs
from opentelemetry.exporter.otlp.json.file._internal import _format_line
from opentelemetry.exporter.otlp.json.file._log_exporter import (
FileLogExporter,
)
from opentelemetry.logs import LogRecord, SeverityNumber
from opentelemetry.proto_json.logs.v1.logs import LogsData
from opentelemetry.sdk._logs import (
LoggerProvider,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
from mocket import Mocket, Mocketizer, mocketize
from mocket.mocks.mockhttp import Entry, Response

from opentelemetry._logs import LogRecord, SeverityNumber
from opentelemetry.exporter.http.transport._urllib3 import (
Urllib3HTTPTransport,
)
Expand All @@ -27,6 +26,7 @@
from opentelemetry.exporter.otlp.json.http._log_exporter import (
OTLPLogExporter,
)
from opentelemetry.logs import LogRecord, SeverityNumber
from opentelemetry.sdk._logs import LoggerProvider
from opentelemetry.sdk._logs.export import (
InMemoryLogRecordExporter,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@

import unittest

from opentelemetry._logs import LogRecord, SeverityNumber
from opentelemetry.exporter.otlp.proto.common._internal import (
_encode_attributes,
_encode_span_id,
_encode_trace_id,
_encode_value,
)
from opentelemetry.exporter.otlp.proto.common._log_encoder import encode_logs
from opentelemetry.logs import LogRecord, SeverityNumber
from opentelemetry.proto.collector.logs.v1.logs_service_pb2 import (
ExportLogsServiceRequest,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
from google.protobuf.json_format import MessageToDict
from grpc import ChannelCredentials, Compression

from opentelemetry._logs import LogRecord, SeverityNumber
from opentelemetry.exporter.otlp.proto.common._internal import _encode_value
from opentelemetry.exporter.otlp.proto.grpc._log_exporter import (
OTLPLogExporter,
)
from opentelemetry.logs import LogRecord, SeverityNumber
from opentelemetry.proto.collector.logs.v1.logs_service_pb2 import (
ExportLogsServiceRequest,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
from mocket import Mocket, Mocketizer, mocketize
from mocket.mocks.mockhttp import Entry, Response

from opentelemetry._logs import LogRecord, SeverityNumber
from opentelemetry.exporter.http.transport._requests import (
RequestsHTTPTransport,
)
Expand All @@ -36,6 +35,7 @@
OTLPLogExporter,
)
from opentelemetry.exporter.otlp.proto.http.version import __version__
from opentelemetry.logs import LogRecord, SeverityNumber
from opentelemetry.proto.collector.logs.v1.logs_service_pb2 import (
ExportLogsServiceRequest,
)
Expand Down
3 changes: 3 additions & 0 deletions opentelemetry-api/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ contextvars_context = "opentelemetry.context.contextvars_context:ContextVarsRunt
[project.entry-points.opentelemetry_environment_variables]
api = "opentelemetry.environment_variables"

[project.entry-points.opentelemetry_logger_provider]
default_logger_provider = "opentelemetry.logs:NoOpLoggerProvider"

[project.entry-points.opentelemetry_meter_provider]
default_meter_provider = "opentelemetry.metrics:NoOpMeterProvider"

Expand Down
42 changes: 22 additions & 20 deletions opentelemetry-api/src/opentelemetry/_logs/__init__.py
Original file line number Diff line number Diff line change
@@ -1,38 +1,40 @@
# Copyright The OpenTelemetry Authors
# SPDX-License-Identifier: Apache-2.0
"""
The OpenTelemetry logging API describes the classes used to generate logs and events.
Deprecated alias of :mod:`opentelemetry.logs`.

The :class:`.LoggerProvider` provides users access to the :class:`.Logger`.

This module provides abstract (i.e. unimplemented) classes required for
logging, and a concrete no-op implementation :class:`.NoOpLogger` that allows applications
to use the API package alone without a supporting implementation.

To get a logger, you need to provide the package name from which you are
calling the logging APIs to OpenTelemetry by calling `LoggerProvider.get_logger`
with the calling module name and the version of your package.

The following code shows how to obtain a logger using the global :class:`.LoggerProvider`::

from opentelemetry._logs import get_logger

logger = get_logger("example-logger")

.. versionadded:: 1.15.0
.. deprecated:: 1.46.0
This module will be removed in a future release. Use
:mod:`opentelemetry.logs` instead.
"""

from opentelemetry._logs._internal import (
import sys
import warnings

from opentelemetry.logs import (
Logger,
LoggerProvider,
LogRecord,
NoOpLogger,
NoOpLoggerProvider,
SeverityNumber,
_internal,
get_logger,
get_logger_provider,
set_logger_provider,
severity,
)
from opentelemetry._logs.severity import SeverityNumber

warnings.warn(
"The opentelemetry._logs module is deprecated since version 1.46.0 "
"and will be removed in a future release. "
"Use opentelemetry.logs instead.",
DeprecationWarning,
stacklevel=2,
)

sys.modules[f"{__name__}._internal"] = _internal
sys.modules[f"{__name__}.severity"] = severity
Comment thread
herin049 marked this conversation as resolved.

__all__ = [
"LogRecord",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@
.. envvar:: OTEL_PYTHON_METER_PROVIDER
"""

_OTEL_PYTHON_LOGGER_PROVIDER = "OTEL_PYTHON_LOGGER_PROVIDER"
OTEL_PYTHON_LOGGER_PROVIDER = "OTEL_PYTHON_LOGGER_PROVIDER"
"""
.. envvar:: OTEL_PYTHON_LOGGER_PROVIDER
"""

_OTEL_PYTHON_LOGGER_PROVIDER = OTEL_PYTHON_LOGGER_PROVIDER
47 changes: 47 additions & 0 deletions opentelemetry-api/src/opentelemetry/logs/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Copyright The OpenTelemetry Authors
# SPDX-License-Identifier: Apache-2.0
"""
The OpenTelemetry logging API describes the classes used to generate logs and events.

The :class:`.LoggerProvider` provides users access to the :class:`.Logger`.

This module provides abstract (i.e. unimplemented) classes required for
logging, and a concrete no-op implementation :class:`.NoOpLogger` that allows applications
to use the API package alone without a supporting implementation.

To get a logger, you need to provide the package name from which you are
calling the logging APIs to OpenTelemetry by calling `LoggerProvider.get_logger`
with the calling module name and the version of your package.

The following code shows how to obtain a logger using the global :class:`.LoggerProvider`::

from opentelemetry.logs import get_logger

logger = get_logger("example-logger")

.. versionadded:: 1.15.0
"""

from opentelemetry.logs._internal import (
Logger,
LoggerProvider,
LogRecord,
NoOpLogger,
NoOpLoggerProvider,
get_logger,
get_logger_provider,
set_logger_provider,
)
from opentelemetry.logs.severity import SeverityNumber

__all__ = [
"LogRecord",
"Logger",
"LoggerProvider",
"NoOpLogger",
"NoOpLoggerProvider",
"SeverityNumber",
"get_logger",
"get_logger_provider",
"set_logger_provider",
]
Loading
Loading