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
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
LogDataReadableLogRecordReadWriteLogRecordLogRecordBreaking 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
- 1For Log Exporters, change the signature to accept Sequence[ReadableLogRecord] instead of Sequence[LogData].
- 2For Log Processors, update on_emit to accept ReadWriteLogRecord and convert to ReadableLogRecord before exporting.
- 3Update imports to use ReadableLogRecord and ReadWriteLogRecord instead of LogData.
- 4Update references to renamed classes from Log to LogRecord.
- 5Adjust 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