diff --git a/src/OpenTelemetry.Api/AssemblyInfo.cs b/src/OpenTelemetry.Api/AssemblyInfo.cs
index 1da065d0a..3d46ffb47 100644
--- a/src/OpenTelemetry.Api/AssemblyInfo.cs
+++ b/src/OpenTelemetry.Api/AssemblyInfo.cs
@@ -20,6 +20,7 @@ using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("OpenTelemetry.Api.ProviderBuilderExtensions" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Api.ProviderBuilderExtensions.Tests" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Api.Tests" + AssemblyInfo.PublicKey)]
+[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.InMemory" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Extensions.Hosting" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Extensions.Hosting.Tests" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Shims.OpenTracing.Tests" + AssemblyInfo.PublicKey)]
diff --git a/src/OpenTelemetry.Exporter.InMemory/InMemoryExporterLoggingExtensions.cs b/src/OpenTelemetry.Exporter.InMemory/InMemoryExporterLoggingExtensions.cs
index 4b722830c..f4427cf5e 100644
--- a/src/OpenTelemetry.Exporter.InMemory/InMemoryExporterLoggingExtensions.cs
+++ b/src/OpenTelemetry.Exporter.InMemory/InMemoryExporterLoggingExtensions.cs
@@ -26,25 +26,48 @@ namespace OpenTelemetry.Logs
///
/// options to use.
/// Collection which will be populated with the exported .
- /// The instance of to chain the calls.
- public static OpenTelemetryLoggerOptions AddInMemoryExporter(this OpenTelemetryLoggerOptions loggerOptions, ICollection exportedItems)
+ /// The supplied instance of to chain the calls.
+ /// todo: [Obsolete("Call LoggerProviderBuilder.AddInMemoryExporter instead this method will be removed in a future version.")]
+ public static OpenTelemetryLoggerOptions AddInMemoryExporter(
+ this OpenTelemetryLoggerOptions loggerOptions,
+ ICollection exportedItems)
{
Guard.ThrowIfNull(loggerOptions);
Guard.ThrowIfNull(exportedItems);
- var logExporter = new InMemoryExporter(
- exportFunc: (in Batch batch) => ExportLogRecord(in batch, exportedItems));
+ var logExporter = BuildExporter(exportedItems);
- return loggerOptions.AddProcessor(new SimpleLogRecordExportProcessor(logExporter));
+ return loggerOptions.AddProcessor(
+ new SimpleLogRecordExportProcessor(logExporter));
+ }
+
+ ///
+ /// Adds InMemory exporter to the LoggerProviderBuilder.
+ ///
+ /// .
+ /// Collection which will be populated with the exported .
+ /// The supplied instance of to chain the calls.
+ internal static LoggerProviderBuilder AddInMemoryExporter(
+ this LoggerProviderBuilder loggerProviderBuilder,
+ ICollection exportedItems)
+ {
+ Guard.ThrowIfNull(loggerProviderBuilder);
+ Guard.ThrowIfNull(exportedItems);
+
+ var logExporter = BuildExporter(exportedItems);
+
+ return loggerProviderBuilder.AddProcessor(
+ new SimpleLogRecordExportProcessor(logExporter));
+ }
+
+ private static InMemoryExporter BuildExporter(ICollection exportedItems)
+ {
+ return new InMemoryExporter(
+ exportFunc: (in Batch batch) => ExportLogRecord(in batch, exportedItems));
}
private static ExportResult ExportLogRecord(in Batch batch, ICollection exportedItems)
{
- if (exportedItems == null)
- {
- return ExportResult.Failure;
- }
-
foreach (var log in batch)
{
exportedItems.Add(log.Copy());
diff --git a/src/OpenTelemetry.Exporter.InMemory/OpenTelemetry.Exporter.InMemory.csproj b/src/OpenTelemetry.Exporter.InMemory/OpenTelemetry.Exporter.InMemory.csproj
index 20909e3de..69b4a1daf 100644
--- a/src/OpenTelemetry.Exporter.InMemory/OpenTelemetry.Exporter.InMemory.csproj
+++ b/src/OpenTelemetry.Exporter.InMemory/OpenTelemetry.Exporter.InMemory.csproj
@@ -20,7 +20,9 @@
+