Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## Unreleased

* **Experimental (pre-release builds only):** Added
support for `Body` set directly on `LogRecord` via the Logs Bridge API.
[#5268](https://github.com/open-telemetry/opentelemetry-dotnet/pull/5268)

* **Experimental (pre-release builds only):** Added
`LoggerProviderBuilder.AddOtlpExporter` registration extensions.
[#5103](https://github.com/open-telemetry/opentelemetry-dotnet/pull/5103)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,15 @@ internal OtlpLogs.LogRecord ToOtlpLog(LogRecord logRecord)
AddAttribute(otlpLogRecord, result, attributeCountLimit);
}
}
#if EXPOSE_EXPERIMENTAL_FEATURES && NET8_0_OR_GREATER
// Supports Body set directly on LogRecord for the Logs Bridge API.
if (otlpLogRecord.Body == null && logRecord.Body != null)
{
// If {OriginalFormat} is not present in the attributes,
// use logRecord.Body if it is set.
otlpLogRecord.Body = new OtlpCommon.AnyValue { StringValue = logRecord.Body };
}
#endif
}

if (logRecord.TraceId != default && logRecord.SpanId != default)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -589,6 +589,34 @@ public void CheckToOtlpLogRecordBodyIsPopulated(bool includeFormattedMessage)
Assert.Equal("state", otlpLogRecord.Body.StringValue);
}

#if EXPOSE_EXPERIMENTAL_FEATURES && NET8_0_OR_GREATER
[Fact]
public void LogRecordBodyIsExportedWhenUsingBridgeApi()
{
var logRecords = new List<LogRecord>();

using (var loggerProvider = Sdk.CreateLoggerProviderBuilder()
.AddInMemoryExporter(logRecords)
.Build())
{
var logger = loggerProvider.GetLogger();

logger.EmitLog(new LogRecordData()
{
Body = "Hello world",
});
}

Assert.Single(logRecords);

var otlpLogRecordTransformer = new OtlpLogRecordTransformer(DefaultSdkLimitOptions, new());

var otlpLogRecord = otlpLogRecordTransformer.ToOtlpLog(logRecords[0]);

Assert.Equal("Hello world", otlpLogRecord.Body?.StringValue);
}
#endif

[Fact]
public void CheckToOtlpLogRecordExceptionAttributes()
{
Expand Down