diff --git a/src/OpenTelemetry.Api.ProviderBuilderExtensions/AssemblyInfo.cs b/src/OpenTelemetry.Api.ProviderBuilderExtensions/AssemblyInfo.cs
index c8c47e0bd17..dce5df270da 100644
--- a/src/OpenTelemetry.Api.ProviderBuilderExtensions/AssemblyInfo.cs
+++ b/src/OpenTelemetry.Api.ProviderBuilderExtensions/AssemblyInfo.cs
@@ -17,6 +17,7 @@
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("OpenTelemetry" + AssemblyInfo.PublicKey)]
+[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.Console" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Extensions.Hosting" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Tests" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Api.ProviderBuilderExtensions.Tests" + AssemblyInfo.PublicKey)]
diff --git a/src/OpenTelemetry.Api/AssemblyInfo.cs b/src/OpenTelemetry.Api/AssemblyInfo.cs
index 3d46ffb478d..1d0d887c5cd 100644
--- a/src/OpenTelemetry.Api/AssemblyInfo.cs
+++ b/src/OpenTelemetry.Api/AssemblyInfo.cs
@@ -20,6 +20,7 @@
[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.Console" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.InMemory" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Extensions.Hosting" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Extensions.Hosting.Tests" + AssemblyInfo.PublicKey)]
diff --git a/src/OpenTelemetry.Exporter.Console/ConsoleExporterLoggingExtensions.cs b/src/OpenTelemetry.Exporter.Console/ConsoleExporterLoggingExtensions.cs
index 50b81a54916..8a2c8af6e41 100644
--- a/src/OpenTelemetry.Exporter.Console/ConsoleExporterLoggingExtensions.cs
+++ b/src/OpenTelemetry.Exporter.Console/ConsoleExporterLoggingExtensions.cs
@@ -14,6 +14,8 @@
// limitations under the License.
//
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Options;
using OpenTelemetry.Exporter;
using OpenTelemetry.Internal;
@@ -26,6 +28,7 @@ public static class ConsoleExporterLoggingExtensions
///
/// options to use.
/// The instance of to chain the calls.
+ /// todo: [Obsolete("Call LoggerProviderBuilder.AddConsoleExporter instead this method will be removed in a future version.")]
public static OpenTelemetryLoggerOptions AddConsoleExporter(this OpenTelemetryLoggerOptions loggerOptions)
=> AddConsoleExporter(loggerOptions, configure: null);
@@ -35,6 +38,7 @@ public static OpenTelemetryLoggerOptions AddConsoleExporter(this OpenTelemetryLo
/// options to use.
/// Callback action for configuring .
/// The instance of to chain the calls.
+ /// todo: [Obsolete("Call LoggerProviderBuilder.AddConsoleExporter instead this method will be removed in a future version.")]
public static OpenTelemetryLoggerOptions AddConsoleExporter(this OpenTelemetryLoggerOptions loggerOptions, Action configure)
{
Guard.ThrowIfNull(loggerOptions);
@@ -43,5 +47,54 @@ public static OpenTelemetryLoggerOptions AddConsoleExporter(this OpenTelemetryLo
configure?.Invoke(options);
return loggerOptions.AddProcessor(new SimpleLogRecordExportProcessor(new ConsoleLogRecordExporter(options)));
}
+
+ ///
+ /// Adds Console exporter with LoggerProviderBuilder.
+ ///
+ /// .
+ /// The supplied instance of to chain the calls.
+ internal static LoggerProviderBuilder AddConsoleExporter(
+ this LoggerProviderBuilder loggerProviderBuilder)
+ => AddConsoleExporter(loggerProviderBuilder, name: null, configure: null);
+
+ ///
+ /// Adds Console exporter with LoggerProviderBuilder.
+ ///
+ /// .
+ /// Callback action for configuring .
+ /// The supplied instance of to chain the calls.
+ internal static LoggerProviderBuilder AddConsoleExporter(
+ this LoggerProviderBuilder loggerProviderBuilder,
+ Action configure)
+ => AddConsoleExporter(loggerProviderBuilder, name: null, configure);
+
+ ///
+ /// Adds Console exporter with LoggerProviderBuilder.
+ ///
+ /// .
+ /// Name which is used when retrieving options.
+ /// Callback action for configuring .
+ /// The supplied instance of to chain the calls.
+ internal static LoggerProviderBuilder AddConsoleExporter(
+ this LoggerProviderBuilder loggerProviderBuilder,
+ string name,
+ Action configure)
+ {
+ Guard.ThrowIfNull(loggerProviderBuilder);
+
+ name ??= Options.DefaultName;
+
+ if (configure != null)
+ {
+ loggerProviderBuilder.ConfigureServices(services => services.Configure(name, configure));
+ }
+
+ return loggerProviderBuilder.AddProcessor(sp =>
+ {
+ var options = sp.GetRequiredService>().Get(name);
+
+ return new SimpleLogRecordExportProcessor(new ConsoleLogRecordExporter(options));
+ });
+ }
}
}
diff --git a/src/OpenTelemetry.Exporter.Console/OpenTelemetry.Exporter.Console.csproj b/src/OpenTelemetry.Exporter.Console/OpenTelemetry.Exporter.Console.csproj
index b7afb8a8fab..b8bd2ceaca7 100644
--- a/src/OpenTelemetry.Exporter.Console/OpenTelemetry.Exporter.Console.csproj
+++ b/src/OpenTelemetry.Exporter.Console/OpenTelemetry.Exporter.Console.csproj
@@ -25,14 +25,18 @@
-
-
-
-
+
+
diff --git a/src/OpenTelemetry/AssemblyInfo.cs b/src/OpenTelemetry/AssemblyInfo.cs
index 6b94f59eb69..6214d72ad48 100644
--- a/src/OpenTelemetry/AssemblyInfo.cs
+++ b/src/OpenTelemetry/AssemblyInfo.cs
@@ -17,6 +17,7 @@
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("OpenTelemetry.Tests" + AssemblyInfo.PublicKey)]
+[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.Console" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.InMemory" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.Prometheus.AspNetCore" + AssemblyInfo.PublicKey)]
[assembly: InternalsVisibleTo("OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests" + AssemblyInfo.PublicKey)]