Skip to content

Commit dbef47b

Browse files
committed
Convert to ReadWriteLogRecord before exporting
1 parent 940f642 commit dbef47b

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ class ReadableLogRecord:
175175

176176
log_record: LogRecord
177177
resource: Resource
178-
instrumentation_scope: InstrumentationScope
178+
instrumentation_scope: InstrumentationScope | None = None
179179

180180
@property
181181
def dropped_attributes(self) -> int:
@@ -293,7 +293,7 @@ def shutdown(self):
293293
"""Called when a :class:`opentelemetry.sdk._logs.Logger` is shutdown"""
294294

295295
@abc.abstractmethod
296-
def force_flush(self, timeout_millis: int = 30000):
296+
def force_flush(self, timeout_millis: int = 30000) -> bool:
297297
"""Export all the received logs to the configured Exporter that have not yet
298298
been exported.
299299

opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/export/__init__.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,13 @@ def on_emit(self, log_record: ReadWriteLogRecord):
123123
return
124124
token = attach(set_value(_SUPPRESS_INSTRUMENTATION_KEY, True))
125125
try:
126-
self._exporter.export((log_record,))
126+
# Convert ReadWriteLogRecord to ReadableLogRecord before exporting
127+
readable_log_record = ReadableLogRecord(
128+
log_record=log_record.log_record,
129+
resource=log_record.resource,
130+
instrumentation_scope=log_record.instrumentation_scope,
131+
)
132+
self._exporter.export((readable_log_record,))
127133
except Exception: # pylint: disable=broad-exception-caught
128134
_logger.exception("Exception while exporting logs.")
129135
detach(token)
@@ -191,7 +197,13 @@ def __init__(
191197
)
192198

193199
def on_emit(self, log_record: ReadWriteLogRecord) -> None:
194-
return self._batch_processor.emit(log_record)
200+
# Convert ReadWriteLogRecord to ReadableLogRecord before passing to BatchProcessor
201+
readable_log_record = ReadableLogRecord(
202+
log_record=log_record.log_record,
203+
resource=log_record.resource,
204+
instrumentation_scope=log_record.instrumentation_scope,
205+
)
206+
return self._batch_processor.emit(readable_log_record)
195207

196208
def shutdown(self):
197209
return self._batch_processor.shutdown()

0 commit comments

Comments
 (0)