Change8

Migrating to OpenTelemetry Python v1.39.0

Version v1.39.0 introduces 4 breaking changes. This guide details how to update your code.

Released: 12/3/2025

4
Breaking Changes
5
Migration Steps
4
Affected Symbols

⚠️ Check Your Code

If you use any of these symbols, you need to read this guide:

LogDataReadableLogRecordReadWriteLogRecordLogRecord

Breaking Changes

Issue #1

LogData has been removed. Log Exporters must now accept Sequence[ReadableLogRecord] instead of Sequence[LogData].

Issue #2

Log Processors should now use ReadWriteLogRecord for processing and convert to ReadableLogRecord before exporting.

Issue #3

Several classes previously named Log have been renamed to LogRecord. Users must update imports and references accordingly.

Issue #4

LogData attributes are now accessed differently on the new record types: use log_record.log_record for the API LogRecord, log_record.resource for Resource, log_record.instrumentation_scope for InstrumentationScope, and log_record.limits for LogRecordLimits.

Migration Steps

  1. 1
    For Log Exporters, change the signature to accept Sequence[ReadableLogRecord] instead of Sequence[LogData].
  2. 2
    For Log Processors, update on_emit to accept ReadWriteLogRecord and convert to ReadableLogRecord before exporting.
  3. 3
    Update imports to use ReadableLogRecord and ReadWriteLogRecord instead of LogData.
  4. 4
    Update references to renamed classes from Log to LogRecord.
  5. 5
    Adjust attribute access on log records to use log_record.log_record, log_record.resource, log_record.instrumentation_scope, and log_record.limits.

Release Summary

This release introduces major breaking changes to the Logs API/SDK by removing LogData and renaming several Log classes to LogRecord, while also deprecating the Events API in favor of enhanced LogRecord usage.

Need More Details?

View the full release notes and all changes for OpenTelemetry Python v1.39.0.

View Full Changelog