opentelemetry.sdk._logs package

class opentelemetry.sdk._logs.LogData(log_record, instrumentation_scope)[source]

Bases: object

Readable LogRecord data plus associated InstrumentationLibrary.

class opentelemetry.sdk._logs.Logger(resource, multi_log_record_processor, instrumentation_scope)[source]

Bases: opentelemetry._logs._internal.Logger

property resource

Emits the LogData by associating LogRecord and instrumentation info.

class opentelemetry.sdk._logs.LoggerProvider(resource=<opentelemetry.sdk.resources.Resource object>, shutdown_on_exit=True, multi_log_record_processor=None)[source]

Bases: opentelemetry._logs._internal.LoggerProvider

property resource
get_logger(name, version=None, schema_url=None)[source]

Returns a Logger for use by the given instrumentation library.

For any two calls it is undefined whether the same or different Logger instances are returned, even for different library names.

This function may return different Logger types (e.g. a no-op logger vs. a functional logger).

  • name (str) –

    The name of the instrumenting module. __name__ may not be used as this can result in different logger names if the loggers are in different files. It is better to use a fixed string that can be imported where needed and used consistently as the name of the logger.

    This should not be the name of the module that is instrumented but the name of the module doing the instrumentation. E.g., instead of "requests", use "opentelemetry.instrumentation.requests".

  • version (Optional[str]) – Optional. The version string of the instrumenting library. Usually this should be the same as pkg_resources.get_distribution(instrumenting_library_name).version.

  • schema_url (Optional[str]) – Optional. Specifies the Schema URL of the emitted telemetry.

Return type



Registers a new LogRecordProcessor for this LoggerProvider instance.

The log processors are invoked in the same order they are registered.


Shuts down the log processors.


Force flush the log processors.


timeout_millis (int) – The maximum amount of time to wait for logs to be exported.

Return type



True if all the log processors flushes the logs within timeout, False otherwise.

class opentelemetry.sdk._logs.LoggingHandler(level=0, logger_provider=None)[source]

Bases: logging.Handler

A handler class which writes logging records, in OTLP format, to a network destination or file. Supports signals from the logging module.


Emit a record.

The record is translated to OTel format, and then sent across the pipeline.

Return type



Flushes the logging output.

Return type


class opentelemetry.sdk._logs.LogRecord(timestamp=None, observed_timestamp=None, trace_id=None, span_id=None, trace_flags=None, severity_text=None, severity_number=None, body=None, resource=None, attributes=None)[source]

Bases: opentelemetry._logs._internal.LogRecord

A LogRecord instance represents an event being logged.

LogRecord instances are created and emitted via Logger every time something is logged. They contain all the information pertinent to the event being logged.

Return type


class opentelemetry.sdk._logs.LogRecordProcessor[source]

Bases: abc.ABC

Interface to hook the log record emitting action.

Log processors can be registered directly using LoggerProvider.add_log_record_processor() and they are invoked in the same order as they were registered.

abstract emit(log_data)[source]

Emits the LogData

abstract shutdown()[source]

Called when a opentelemetry.sdk._logs.Logger is shutdown

abstract force_flush(timeout_millis=30000)[source]

Export all the received logs to the configured Exporter that have not yet been exported.


timeout_millis (int) – The maximum amount of time to wait for logs to be exported.


False if the timeout is exceeded, True otherwise.