[console-exporter] Add extension on LoggerProviderBuilder (#4549)
This commit is contained in:
parent
a4575581f1
commit
e74e0ed5dd
|
|
@ -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)]
|
||||
|
|
|
|||
|
|
@ -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.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)]
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
// limitations under the License.
|
||||
// </copyright>
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Options;
|
||||
using OpenTelemetry.Exporter;
|
||||
using OpenTelemetry.Internal;
|
||||
|
||||
|
|
@ -26,6 +28,7 @@ namespace OpenTelemetry.Logs
|
|||
/// </summary>
|
||||
/// <param name="loggerOptions"><see cref="OpenTelemetryLoggerOptions"/> options to use.</param>
|
||||
/// <returns>The instance of <see cref="OpenTelemetryLoggerOptions"/> to chain the calls.</returns>
|
||||
/// 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 @@ namespace OpenTelemetry.Logs
|
|||
/// <param name="loggerOptions"><see cref="OpenTelemetryLoggerOptions"/> options to use.</param>
|
||||
/// <param name="configure">Callback action for configuring <see cref="ConsoleExporterOptions"/>.</param>
|
||||
/// <returns>The instance of <see cref="OpenTelemetryLoggerOptions"/> to chain the calls.</returns>
|
||||
/// todo: [Obsolete("Call LoggerProviderBuilder.AddConsoleExporter instead this method will be removed in a future version.")]
|
||||
public static OpenTelemetryLoggerOptions AddConsoleExporter(this OpenTelemetryLoggerOptions loggerOptions, Action<ConsoleExporterOptions> configure)
|
||||
{
|
||||
Guard.ThrowIfNull(loggerOptions);
|
||||
|
|
@ -43,5 +47,54 @@ namespace OpenTelemetry.Logs
|
|||
configure?.Invoke(options);
|
||||
return loggerOptions.AddProcessor(new SimpleLogRecordExportProcessor(new ConsoleLogRecordExporter(options)));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds Console exporter with LoggerProviderBuilder.
|
||||
/// </summary>
|
||||
/// <param name="loggerProviderBuilder"><see cref="LoggerProviderBuilder"/>.</param>
|
||||
/// <returns>The supplied instance of <see cref="LoggerProviderBuilder"/> to chain the calls.</returns>
|
||||
internal static LoggerProviderBuilder AddConsoleExporter(
|
||||
this LoggerProviderBuilder loggerProviderBuilder)
|
||||
=> AddConsoleExporter(loggerProviderBuilder, name: null, configure: null);
|
||||
|
||||
/// <summary>
|
||||
/// Adds Console exporter with LoggerProviderBuilder.
|
||||
/// </summary>
|
||||
/// <param name="loggerProviderBuilder"><see cref="LoggerProviderBuilder"/>.</param>
|
||||
/// <param name="configure">Callback action for configuring <see cref="ConsoleExporterOptions"/>.</param>
|
||||
/// <returns>The supplied instance of <see cref="LoggerProviderBuilder"/> to chain the calls.</returns>
|
||||
internal static LoggerProviderBuilder AddConsoleExporter(
|
||||
this LoggerProviderBuilder loggerProviderBuilder,
|
||||
Action<ConsoleExporterOptions> configure)
|
||||
=> AddConsoleExporter(loggerProviderBuilder, name: null, configure);
|
||||
|
||||
/// <summary>
|
||||
/// Adds Console exporter with LoggerProviderBuilder.
|
||||
/// </summary>
|
||||
/// <param name="loggerProviderBuilder"><see cref="LoggerProviderBuilder"/>.</param>
|
||||
/// <param name="name">Name which is used when retrieving options.</param>
|
||||
/// <param name="configure">Callback action for configuring <see cref="ConsoleExporterOptions"/>.</param>
|
||||
/// <returns>The supplied instance of <see cref="LoggerProviderBuilder"/> to chain the calls.</returns>
|
||||
internal static LoggerProviderBuilder AddConsoleExporter(
|
||||
this LoggerProviderBuilder loggerProviderBuilder,
|
||||
string name,
|
||||
Action<ConsoleExporterOptions> 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<IOptionsMonitor<ConsoleExporterOptions>>().Get(name);
|
||||
|
||||
return new SimpleLogRecordExportProcessor(new ConsoleLogRecordExporter(options));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,14 +25,18 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\OpenTelemetrySdkEventSource.cs" Link="Includes\OpenTelemetrySdkEventSource.cs" />
|
||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\PeriodicExportingMetricReaderHelper.cs" Link="Includes\PeriodicExportingMetricReaderHelper.cs" />
|
||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\TagTransformer.cs" Link="Includes\TagTransformer.cs" />
|
||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Metrics\Base2ExponentialBucketHistogram.LowerBoundary.cs" Link="Includes\Base2ExponentialBucketHistogram.LowerBoundary.cs" />
|
||||
<!-- Note: OpenTelemetry.Exporter.Console temporarily sees OpenTelemetry.Api internals for LoggerProviderBuilder
|
||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry.Api\Internal\ExceptionExtensions.cs" Link="Includes\ExceptionExtensions.cs" />
|
||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry.Api\Internal\Guard.cs" Link="Includes\Guard.cs" />
|
||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry.Api\Internal\SpanAttributeConstants.cs" Link="Includes\SpanAttributeConstants.cs" />
|
||||
-->
|
||||
<!-- Note: OpenTelemetry.Exporter.Console temporarily sees OpenTelemetry internals for LoggerProviderBuilder extensions
|
||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\OpenTelemetrySdkEventSource.cs" Link="Includes\OpenTelemetrySdkEventSource.cs" />
|
||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\PeriodicExportingMetricReaderHelper.cs" Link="Includes\PeriodicExportingMetricReaderHelper.cs" />
|
||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\TagTransformer.cs" Link="Includes\TagTransformer.cs" />
|
||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Internal\Shims\UnconditionalSuppressMessageAttribute.cs" Link="Includes\UnconditionalSuppressMessageAttribute.cs" Condition="'$(TargetFrameworkIdentifier)' != '.NETCoreApp'" />
|
||||
<Compile Include="$(RepoRoot)\src\OpenTelemetry\Metrics\Base2ExponentialBucketHistogram.LowerBoundary.cs" Link="Includes\Base2ExponentialBucketHistogram.LowerBoundary.cs" />
|
||||
-->
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -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)]
|
||||
|
|
|
|||
Loading…
Reference in New Issue